【问题标题】:Dojo: Set locale by URL-ParameterDojo:通过 URL 参数设置语言环境
【发布时间】:2014-04-23 18:53:57
【问题描述】:

在 Dojo Toolkit 中,必须在加载时使用的配置中定义区域设置(语言)。

例如

<script data-dojo-config="async: 1, isDebug: 1, locale: 'es'" src="dojo/dojo.js"></script>

我想通过这样的 URL 参数指定语言环境:

../myapp/index.html?lang=es

我使用 Dojo 的样板: Dojo Boilerplate

一个想法是用这种方式加载 dojo.js:

<script data-dojo-config="async: 1, isDebug: 1, locale: function(){//Code returning the value of the language URL-Parameter}" src="dojo/dojo.js"></script>

但这不起作用。

谢谢!

PS: 解决方案在Custom language variants 中提供。但这只有在您只有一个 URL 参数时才有效。

【问题讨论】:

    标签: dojo locale url-parameters boilerplate


    【解决方案1】:

    这似乎有效: URL-Parameters with JS.

    导致

    <script data-dojo-config="async: 1, isDebug: 1, locale: decodeURIComponent((new RegExp('[?|&]' + 'lang' + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,''])[1].replace(/\+/g, '%20'))||null" src="dojo/dojo.js"></script>
    

    “lang”是我的语言 URL 参数的名称。

    【讨论】:

      【解决方案2】:

      我注意到您已经有了一个(有效的)答案。但是,如果您的目标是使用特定语言环境测试网站,那么您只需从 Dojo 配置中删除 locale 属性并使用浏览器语言环境作为替代。

      浏览器区域设置取决于您在浏览器中配置的语言。

      【讨论】:

      • 我必须实现切换语言按钮。你知道一些网站上的标志,改变语言。此外,如果用户将实际 URL 存储在书签中,我想保存所选语言。重新加载书签,将根据保存的书签加载语言,因为语言保存在 URL-Parameter 中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-27
      • 1970-01-01
      • 2010-09-09
      • 2019-04-01
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      相关资源
      最近更新 更多