我正在开发一个需要国际化功能的单页应用(将所有静态字符串翻译成用户的语言并设置日期和货币格式)。
我正在使用Ember.js,因此大多数静态字符串都在html bocks中(在模板或视图中)或者是典型的Javascript消息,例如“你确定要删除...”(部分控制器文件)。
我正在寻找有关如何从应用程序中抽象出所有这些字符串和其他特定于语言环境的位的最佳实践和经验。
我主要看到的问题是用户语言仅在登录后确定。但在那一刻,整个应用程序已经加载(用英语),因此“重定向”到另一种语言是不可能的(除非你在应用程序启动时加载所有可能语言的所有字符串 - 但这需要太多的数据才能在开始时加载。
任何反馈都很好!
- 更新 -
我在此期间发现了ember-i18n库,我可以用它来翻译字符串(https://github.com/jamesarosen/ember-i18n)。
我的主要问题仍然存在:如何在登录后动态加载与所选语言相对应或与用户语言相对应的translation.js文件?
有没有办法存储所选语言,以便在下次应用程序启动时,应用程序使用正确的语言(从而在呈现UI之前加载正确的翻译文件)。
希望有人可以提供帮助。
马克
答案 0 :(得分:1)
您可以将语言设置存储在Cookie中,但这不是100%的方法。或者只要知道语言就加载带有ajax调用的翻译json。