blob: 87fe1b1449b4c3a93664126d35aa87f79c5b6294 [file] [log] [blame]
Christ van Willegence0ef912024-06-20 23:41:59 +02001source check.vim
RestorerZ96509102024-07-11 21:14:15 +02002" This fail on CI MacOS 14 because bindtextdomain() is not available there
3" (missing library?)
Christian Brabandt6bc11c02024-06-21 07:31:04 +02004CheckNotMac
Christ van Willegen8252ef12024-07-11 21:36:21 +02005CheckFeature gettext
Christ van Willegence0ef912024-06-20 23:41:59 +02006
7" Test for gettext()
8func Test_gettext()
9 set encoding=utf-8
Christ van Willegen8252ef12024-07-11 21:36:21 +020010 call assert_equal('ERROR: ', gettext("ERROR: ", "__PACKAGE__"))
11
Christ van Willegence0ef912024-06-20 23:41:59 +020012 try
Christ van Willegen8252ef12024-07-11 21:36:21 +020013 call assert_true(bindtextdomain("__PACKAGE__", getcwd()))
14
15 try
16 language messages ru_RU
Christ van Willegenc0786752025-02-01 15:42:16 +010017 call assert_equal('ОШИБКА: for __PACKAGE__', gettext("ERROR: ", "__PACKAGE__"))
18
19 call assert_equal('ОШИБКА: for __PACKAGE__', ngettext("ERROR: ", "ERRORS: ", 1, "__PACKAGE__"))
20 call assert_equal('ОШИБКА: for __PACKAGE__', ngettext("ERROR: ", "ERRORS: ", 2, "__PACKAGE__"))
21
22 call assert_equal('%d буфер удалён из памяти for __PACKAGE__', ngettext("%d buffer unloaded", "%d buffers unloaded", 1, "__PACKAGE__"))
23 call assert_equal('%d буфера удалено из памяти for __PACKAGE__', ngettext("%d buffer unloaded", "%d buffers unloaded", 2, "__PACKAGE__"))
24 call assert_equal('%d буферов удалено из памяти for __PACKAGE__', ngettext("%d buffer unloaded", "%d buffers unloaded", 5, "__PACKAGE__"))
Christ van Willegen8252ef12024-07-11 21:36:21 +020025 catch /^Vim\%((\a\+)\)\=:E197:/
26 throw "Skipped: not possible to set locale to ru (missing?)"
27 endtry
28
29 try
30 language messages en_GB.UTF-8
31 call assert_equal('ERROR: ', gettext("ERROR: ", "__PACKAGE__"))
Christ van Willegenc0786752025-02-01 15:42:16 +010032
33 call assert_equal('ERROR: ', ngettext("ERROR: ", "ERRORS: ", 1, "__PACKAGE__"))
34 call assert_equal('ERRORS: ', ngettext("ERROR: ", "ERRORS: ", 2, "__PACKAGE__"))
35
36 call assert_equal('%d buffer unloaded', ngettext("%d buffer unloaded", "%d buffers unloaded", 1, "__PACKAGE__"))
37 call assert_equal('%d buffers unloaded', ngettext("%d buffer unloaded", "%d buffers unloaded", 2, "__PACKAGE__"))
38 call assert_equal('%d buffers unloaded', ngettext("%d buffer unloaded", "%d buffers unloaded", 5, "__PACKAGE__"))
Christ van Willegen8252ef12024-07-11 21:36:21 +020039 catch /^Vim\%((\a\+)\)\=:E197:/
40 throw "Skipped: not possible to set locale to en (missing?)"
41 endtry
42
43 catch /^Vim\%((\a\+)\)\=:E342:/
44 throw "Skipped: out of memory executing bindtextdomain()"
Christ van Willegence0ef912024-06-20 23:41:59 +020045 endtry
46 set encoding&
47endfunc
48
49" vim: shiftwidth=2 sts=2 expandtab