开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
Stranslator首页、文档和下载 - 翻译 Scala 应用中的文本的库 - 开源中国社区
Float_left Icon_close
全部项目分类
我要评价
Apache
Scala 查看源码»
跨平台
适然
分享
收藏
2 人收藏
收录时间:2017-04-14
Stranslator 详细介绍

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>http://example.com:9000/some/app/l10n/translations.xml</include>
</translator>

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

关于 stranslator.Translator

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

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


大家对 Stranslator 的评论 (全部 0 条评论)
{{repayCom.userName}}
顶部