首页 文章

I18n在symfony中有部分翻译和多种首选语言

提问于
浏览
1

我正在开发一个网站来培训学生参加编程比赛 . 目前,该网站主要使用法语,但它将用西班牙语翻译(另一个国家希望使用我们的培训网站) .

界面的国际化很容易,但1500个练习不会在很长一段时间内全部翻译 .

我需要的是一种以用户选择的语言本地化内容(和界面)的方法,但如果该语言不能提供特定的翻译,那么应该使用默认的(法语) . 我们甚至想要概括一下:想象一些法语练习用英语翻译,你是一个西班牙人,不会说法语 . 你首先想要西班牙语版本,然后是英语版本,然后是法国版本 .

在这种情况下,是否有一种使用国际化的好方法?

我可以尝试一种语言,如果没有任何结果,尝试另一种语言,但它不会非常有效....

1 回答

  • 1

    对于模板内容,如果您使用的是Symfony i18n行为,则可以自动使用后备默认语言 . 无论你在 __('string') 帮助器中放置什么,如果找不到翻译的字符串,都将使用默认文化(在settings.yml中声明) . 对于多语言数据库内容,如果找不到特定语言的内容,您就不知道Symfony i18n数据库处理如何在默认语言的情况下工作 . 查询可能变得复杂 . 我的一般意见是你只是我 .

    对于语言的排序(首先翻译,然后是英语,然后是默认语言),我的理解是开箱即用的Symfony i18n行为不支持这一点 . 您可以通过确保在西班牙语XML / XLIFF文件中将英语翻译放在可以提供英语(但不是西班牙语)翻译的 <target> 标签内来破解某种类型的解决方案 . 这将给你ES - > EN - > FR . 但是,我还建议你干净利落地翻译你的翻译,这样它就不会变得太复杂/混乱 .

    希望有所帮助 .

相关问题