多语言包

什么是多语言

作为嵌入式形态存在的多语言包分为前端及服务端两种模式,前端使用L.getText,服务端要使用L::getText 框架配置preloaded加入"of_base_language_packs"启动

语言包的配置

框架配置_of.language为本站的语言包选项
  1. path : 语言包所在路径
  2. match : 局部翻译匹配规则, 注意需兼容js, 第一个不为空的子组作为翻译文本, 匹配失败时, 开发模式报错, 其它模式备忘
  3. default : 默认加载的语言,base=基础包

多语言实现流程

  1. 在debug模式或默认语言为base时, 使用L::getText或L.getText生成默认语言包到base文件夹
  2. 将default设置成语言包文件夹名,或改变COOKIE[of_base_language][name]值来切换不同语言
  3. 局部翻译默认规则是 没有特殊字符的英文数字 | 没有英文数字 | 以半角": "分隔之前 | 以半角".!?"结尾的句子, 参数mode控制此特性, of::work(int, str)的str尤其注意
  4. 访问 框架目录/index.php?c=of_base_language_tool 制作不同语言包

php多语言的使用

L::getText(string $str[, array $params])
<?php                                           //下面两种方法都可以调用语言包
echo L::getText('加载默认语言中的该字符串');    //推荐
echo L::getText('加载默认语言中的该字符串', array('key' => '这一个关键字'));
echo L::getText('被翻译的部分: 不翻译部分', array('mode' => 1));    //默认第一个": "后的内容不被翻译

Javascript多语言的使用

window.L.getText(string str[,object params])
<script>
document.write(L.getText('加载JS端语言包翻译')+'<br/>');
document.write(L.getText('加载JS端语言包翻译: const', {'mode' : 1});
document.write(L.getText('IE下开发加载JS端语言包翻译', {'key' : '关键字'}));
</script>