Stranslator 翻译 Scala 应用中的文本的库

我要开发同款
匿名用户2017年04月14日
53阅读
开发技术Scala
所属分类开发工具
授权协议Apache

作品详情

Stranslator是一个极致精简的国际化库,可以让你很方便的翻译你的(Scala)应用中的文本。

目的:Scala中缺乏对软件国际化的支持,而Java传统的properties文件又需要一个冗长且不明确的key,所以此工具应运而生。

XML翻译文件的格式(示例)

<?xml version="1.0" encoding="UTF-8" ?><translator>    <message>        <from>This is the original message!</from>        <to>            <!-- the translation for chinese -->            <zh>这是原始文本!</zh>            <!-- the translation for traditional chinese(Hong Kong) -->            <zh_HK>這是原始文本!</zh_HK>        </to>    </message></translator>

用法1.添加项目依赖

libraryDependencies += "com.lingcreative" %% "stranslator" % "1.2.0"

2.代码示例

import translator._val translator = Translator()val locale = new Locale("zh", "CN")implicit val context = SimpleTranslatorContext(translator, Seq(locale))val welcome = ${"Hello, Sauntor! Welcome to China!"}

若你在classpath中提供如下文件:

<?xml version="1.0" encoding="UTF-8" ?><translator>    <message>        <from>Hello, Sauntor! Welcome to China!</from>        <to>            <zh_CN>适然,你好!欢迎来到中国!</zh_CN>        </to>    </message></translator>

则welcome变量的值将会是:

适然,你好!欢迎来到中国!

注意事项1.开头和结尾的换行符将会被忽略.2.一行超长的文本可以用\n拉换行(不影响源代翻译文本)示例:

<translator>    <message>        <from>            Hello, \            Jack! I'm waiting \            for you!        </from>        <to>            <zh>捷克,你来了。\            我已经等你好久了!            </zh>        </to>    </message></translator>

上面的代码等价于:

<translator>    <message>        <from>Hello, Jack! I'm waiting for you!</from>        <to><zh>捷克,你来了。我已经等你好久了!</zh></to>    </message></translator>

3."Tranlator"的默认加载位置为l10n/translator.xml,下例.

val translator = Translator()

与下面的代码是等同的:

val translator = Translator("cp://l10n/translator.xml")// 或者等同于://val translator = Translator("l10n/translator.xml")

4.你也可以用<include>标签来导入其他的翻译文件:

<translator>    <include>https://example.com:9000/some/app/l10n/translations.xml</include></translator>

include标签不支持相对路径,即你不能像这样包含其他的翻译文件../some/other/module.xml

关于stranslator.Translator

这是定义翻译功能的特质。你可以使用任何URL(若java.net.URL支持此协议),但以"cp://"开头(没有任何schame开头)的URL会被认为是类路径里的资源

例如,你个可以把翻译文件放到一个单独的外部服务器,https://example.com/l10n/demo-app.xml,则Translator会从对应的URL中加载翻译文件

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论