代码之家  ›  专栏  ›  技术社区  ›  cdonner

drupal i18n-视图元素的默认语言

  •  0
  • cdonner  · 技术社区  · 14 年前

    我正在一个双语网站上工作,这是Drupal6的最新版本。我安装了国际化模块和视图翻译模块,以及许多其他模块。

    问题:在/admin/build/translate/search上,一些元素(例如视图标题)出现在文本组“views”中,Drupal假定它们是德语的,需要进行英语翻译。

    其他元素(例如暴露的过滤器标签)出现在文本组“内置接口”中,Drupal假定它们是英文的,需要德语翻译。但事实上,所有的字符串都是德语:

    明确地说,我没有看到语言选择或视图显示的问题。问题是,当页面首先由语言系统解析,并且任何可翻译的字符串都插入到翻译表中时。Drupal为同一页上的元素分配不同的源语言。结果是语言的混合,一旦这些字符串被转换。

    我认为可能是最先访问页面的用户的语言偏好影响了这一点,但当我开始更改页面时,我遇到了 this issue(读取线程是一种打开眼睛的方式-对于考虑drupal for enter的任何人来说,都应该强制读取线程企业级解决方案)。好的,现在我在组合中有了URL前缀,这意味着当用户更改语言首选项时,站点语言不会更改,除非他们手动更改URL。 当我设法用英语呈现页面时,发现当显示语言等于源语言时,Drupal不会获取翻译字符串。所以那里没有运气。

    我准备用两种语言编写我的视图,这取决于Drupal认为源语言适用于各种元素,但即使这样也行不通。还有人经历过吗?

    问题:在/admin/build/translate/search上,一些元素(例如视图标题)出现在文本组“views”中,Drupal假定它们是德语的,需要进行英语翻译。

    其他元素(例如暴露的过滤器标签)出现在文本组“内置接口”中,Drupal假定它们是英文的,需要德语翻译。但事实上,所有字符串都是德语:

    alt text

    明确地说,我没有看到语言选择或视图显示的问题。问题是,当页面首先由语言系统解析,并且任何可翻译的字符串都插入到翻译表中时。Drupal为同一页上的元素分配不同的源语言。结果是语言的混合,一旦这些字符串被翻译。

    我认为可能是用户首先点击页面的语言偏好干扰了这一点,但当我开始更改页面时,我遇到了 this issue (阅读这个线程是一个很好的方法——对于任何一个考虑使用Drupal进行企业级解决方案的人来说,这应该是强制性的阅读)。好的,现在我在组合中有了URL前缀,这意味着当用户更改语言首选项时,站点语言不会更改,除非他们手动更改URL。 当我设法用英语呈现页面时,发现当显示语言等于源语言时,Drupal不会获取翻译字符串。所以那里没有运气。

    我准备用两种语言编写我的视图,这取决于Drupal认为源语言适用于各种元素,但即使这样也行不通。还有人经历过吗?

    1 回复  |  直到 14 年前
        1
  •  3
  •   Community CDub    7 年前

    我认为您可能在Drupal多语言系统的工作方式上犯了基本错误。我在我建立的第一个多语言Drupal网站上也犯了同样的错误。

    最重要的是-如果你的语言之一是英语-在你的代码中使用英语。如果您需要将单词“room”放在模板中,请使用t(“room”)而不是t(“zimmer”)。您的视图标题?使用英语。标签名称和描述?使用英语。主要语言应为英语。设置好英语站点后,可以使用翻译界面翻译站点。我知道他的母语不是英语听起来很奇怪,但我用i18n做了几个多语言站点,这是一个正确的方法,只需最少的并发症。

    更改管理界面语言只会更改界面-而不是值。如果您将接口更改为德语(即yoursite.com/de/admin/views),并不意味着您在“德语视图”上。这是相同的观点。

    有一些例外-如我在这里解释的多语言变量: How can I set a different homepage per language in Drupal?

    我希望这有帮助。