codecamp

国际化(I18N)

I18N服务是在YMP框架启动时初始化,其根据ymp.i18n_default_locale进行语言配置,默认采用系统运行环境的语言设置;

  • 国际化资源管理器提供的主要方法:

    • 获取当前语言设置

      I18N.current();
      
    • 设置当前语言

      // 变更当前语言设置且不触发事件
      I18N.current(Locale.ENGLISH);
      
      或者
      
      // 将触发监听处理器onChanged事件
      I18N.change(Locale.ENGLISH);
      
    • 根据当前语言设置,加载指定名称资源文件内指定的属性值

      I18N.load("resources", "home_title");
      
      或者
      
      I18N.load("resources", "home_title", "首页");
      
    • 格式化消息字符串并绑定参数

      // 加载指定名称资源文件内指定的属性并使用格式化参数绑定
      I18N.formatMessage("resources", "site_title", "Welcome {0}, {1}","YMP",“GoodLuck!”);
      
      // 使用格式化参数绑定
      I18N.formatMessage("Hello, {0}, {1}", "YMP",“GoodLuck!”);
      
  • 国际化资源管理器事件监听处理器,通过实现II18NEventHandler接口,在YMP配置文件中的i18n_event_handler_class参数进行设置,该监听器可以完成如下操作:

    • 自定义资源文件加载过程
    • 自定义获取当前语言设置
    • 语言设置变更的事件处理过程
模块(Module)
Lang
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }