translation - 语言案例/偏斜和gettext

标签 translation multilingual gettext

有没有人想到过gettext和某些语言中的不同情况。我们目前遇到的问题是,克罗地亚语甚至名字都被拒绝了。


  • 英语:关于Foobar
  • 德语:ÜberFoobar
  • 克罗地亚语:O Foobaru(标记 u )

  • 我正在使用gettext灵活地插入此名称,因为它可能会更改:
    translate('About %s', name)
    

    允许磁偏角的最佳方法是什么?如果是 Foobar 和克罗地亚磁偏角,可以这样解决:
    About %s => O %su
    

    但是,现在让我们使用以 Foobara 这样的结尾的单词,然后克罗地亚语正确的语法将是 O Foobari (必须删除,并附加)。

    如何克服gettext的不足?

    最佳答案

    gettext不支持这种变形。

    如果您知道%s的所有可能候选人,则可以在资源中列出所有候选人,例如,

    msgid "About Foobar"
    msgstr "O Foobaru"
    msgid "About Bazbar"
    msgstr "O Bazbarbaru"
    msgid "About Foobara"
    msgstr "O Foobari"
    msgid "About Bazbara"
    msgstr "O Bazbari"
    

    但是这样会使其他语言(如德语)繁琐。

    或者,如果您可以将克罗地亚语变形定义为函数,则可以先在函数中对其进行处理,然后继续使用通用的gettext转换。
    translate('About %s', myDeclension(name));
    

    而myDeclension函数可以做到这一点,
    function myDeclension(text) {
      if (isLocale() != 'hr') { return text; }
      if (isEndWithA(text)) { return replaceLastAWithI(text); }
      else { return addTrailingU(text); }
      // add more Croatian specific conversion if any
    }
    

    关于translation - 语言案例/偏斜和gettext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9152182/

    相关文章:

    php - CakePHP 1.3 后备翻译

    php - Wordpress - 手动链接两个post翻译与polylang

    android - Android 中布局问题的阿拉伯镜像

    html - 调整网页以支持外语

    java - 从动态创建的 JTextField 获取值

    PHP gettext 和 vagrant 运行 ubuntu

    php - Apache gettext 窗口不工作/翻译

    python - 如何从另一种语言单词创建英文字母字符串?

    vb.net - 多语言和资源文件

    php - Zend 框架 2 - 如何制作语言切换器