From 6c20164125cd5a2cb0f7b147f4b411a1f19e9aa8 Mon Sep 17 00:00:00 2001 From: Paul Kulchenko Date: Thu, 16 Apr 2015 21:24:11 -0700 Subject: [PATCH] Fixed showing of not translated messages that require pluralization. --- src/main.lua | 4 ++++ src/util.lua | 13 +++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main.lua b/src/main.lua index 3ea61d273..8c9017263 100644 --- a/src/main.lua +++ b/src/main.lua @@ -525,6 +525,10 @@ do if ide.config.language then LoadLuaFileExt(ide.config.messages, "cfg"..sep.."i18n"..sep..ide.config.language..".lua") end + -- always load 'en' as it's requires as a fallback for pluralization + if ide.config.language ~= 'en' then + LoadLuaFileExt(ide.config.messages, "cfg"..sep.."i18n"..sep.."en.lua") + end end loadPackages() diff --git a/src/util.lua b/src/util.lua index 94759658f..16e5596bb 100644 --- a/src/util.lua +++ b/src/util.lua @@ -344,12 +344,17 @@ function RequestAttention() end end -local messages, lang, counter function TR(msg, count) - lang = lang or ide.config.language - messages = messages or ide.config.messages - counter = counter or (messages[lang] and messages[lang][0]) + local messages = ide.config.messages + local lang = ide.config.language + local counter = messages[lang] and messages[lang][0] local message = messages[lang] and messages[lang][msg] + -- if there is count and no corresponding message, then + -- get the message from the (default) english language, + -- otherwise the message is not going to be pluralized properly + if count and not message then + message, counter = messages.en[msg], messages.en[0] + end return count and counter and message and type(message) == 'table' and message[counter(count)] or message or msg end