-
Notifications
You must be signed in to change notification settings - Fork 18
gettingStarted language
tolizhan edited this page Apr 1, 2024
·
5 revisions
作为嵌入式形态存在的多语言包分为前端及服务端两种模式,前端使用L.getText,服务端要使用L::getText 框架配置preloaded加入"of_base_language_packs"启动
框架配置_of.language为本站的语言包选项
- path : 语言包所在路径
- match : 局部翻译匹配规则, 注意需兼容js, 第一个不为空的子组作为翻译文本, 匹配失败时, 开发模式报错, 其它模式备忘
- default : 默认加载的语言,base=基础包
- 在debug模式或默认语言为base时, 使用L::getText或L.getText生成默认语言包到base文件夹
- 将default设置成语言包文件夹名,或改变COOKIE[of_base_language][name]值来切换不同语言
- 局部翻译默认规则是 没有特殊字符的英文数字 | 没有英文数字 | 以半角": "分隔之前 | 以半角".!?"结尾的句子, 参数mode控制此特性, of::work(int, str)的str尤其注意
-
访问 框架目录/index.php?c=of_base_language_tool 制作不同语言包
L::getText(string $str[, array $params])
-
$strstring指定需要翻译的文本
-
$paramsarray相关复选参数,该项都是选加
-
keystring翻译区分标识符, 默认=""[因情况而定,如果可显示区的长度一样,便可以不加]
-
filestring指定调用磁盘路径, 绝对路径
-
traceint调用跟踪文件定位(默认0=调用此方法文件, 1=0的父方法, ...)
-
modeint翻译模式, 0=全部翻译, 1=按_of.language.match规则局部翻译
-
typestring读取页面的类型,php=js读取,js=js读取不推荐
-
<?php //下面两种方法都可以调用语言包 echo L::getText('加载默认语言中的该字符串'); //推荐 echo L::getText('加载默认语言中的该字符串', array('key' => '这一个关键字')); echo L::getText('被翻译的部分: 不翻译部分', array('mode' => 1)); //默认第一个": "后的内容不被翻译
window.L.getText(string str[,object params])
-
strstring指定需要翻译的文本
-
paramsobject相关复选参数,该项都是选加,但推荐都加上
-
keystring一个文件中出现一次以上该文本时应传入此参数[因情况而定,如果可显示区的长度一样,便可以不加]
-
modeint翻译模式, 0=全部翻译, 1=按_of.language.match规则局部翻译
-
<script> document.write(L.getText('加载JS端语言包翻译')+'<br/>'); document.write(L.getText('加载JS端语言包翻译: const', {'mode' : 1}); document.write(L.getText('IE下开发加载JS端语言包翻译', {'key' : '关键字'})); </script>
手册地址 http://phpof.net/
- 入门指引
-
疑难解答
- 部署时会遇到的那些常见问题
简单却容易忽视 - 框架内置有哪些管理界面
生产模式进入界面需用 __OF_DEBUG__ - 如何定制不同的架构模式
通过配置入口文件中调度方法的参数即可 - 如何面向命名空间开发
of_xx 类可以按照命名空间方式调用 - 如何设置不同的部署模式
通过_of.debug设置 开发,测试,生产 模式 - 为什么控制层类文件要返回true
这是防止非法访问的方法之一 - 为什么传到视图层的变量会被编码
这是因为 XSS 安全防范的原因 - 为什么框架没有SQL构造器
因常规方案牺牲了性能又未很好解决问题 - 如何快速开发用户及权限管理功能
单点登录(SSO)模块因此而存在 - 怎么在系统的基础上扩展底层功能
三点: 扩展开发, 预先加载, 底层钩子 - 怎么使用 Composer 依赖管理工具
框架已集成, 默认关闭状态
- 部署时会遇到的那些常见问题
- 组件使用
- 集成插件
- 扩展开发
- 开发手册