Straslator是一个极致精简的国际化库,可以让你很方便的翻译你的(Scala)应用中的文本。
目的:Scala中缺乏对软件国际化的支持,而Java传统的properties文件又需要一个冗长且不明确的key,所以此工具应运而生。
XML翻译文件的格式(示例)
<?xml versio="1.0" ecodig="UTF-8" ?><traslator> <message> <from>This is the origial message!</from> <to> <!-- the traslatio for chiese --> <zh>这是原始文本!</zh> <!-- the traslatio for traditioal chiese(Hog Kog) --> <zh_HK>這是原始文本!</zh_HK> </to> </message></traslator>用法1.添加项目依赖
libraryDepedecies += "com.ligcreative" %% "straslator" % "1.2.0"2.代码示例
import traslator._val traslator = Traslator()val locale = ew Locale("zh", "CN")implicit val cotext = SimpleTraslatorCotext(traslator, Seq(locale))val welcome = ${"Hello, Sautor! Welcome to Chia!"}若你在classpath中提供如下文件:
<?xml versio="1.0" ecodig="UTF-8" ?><traslator> <message> <from>Hello, Sautor! Welcome to Chia!</from> <to> <zh_CN>适然,你好!欢迎来到中国!</zh_CN> </to> </message></traslator>则welcome变量的值将会是:
适然,你好!欢迎来到中国!注意事项1.开头和结尾的换行符将会被忽略.2.一行超长的文本可以用\拉换行(不影响源代翻译文本)示例:
<traslator> <message> <from> Hello, \ Jack! I'm waitig \ for you! </from> <to> <zh>捷克,你来了。\ 我已经等你好久了! </zh> </to> </message></traslator>上面的代码等价于:
<traslator> <message> <from>Hello, Jack! I'm waitig for you!</from> <to><zh>捷克,你来了。我已经等你好久了!</zh></to> </message></traslator>3."Tralator"的默认加载位置为l10/traslator.xml,下例.
val traslator = Traslator()与下面的代码是等同的:
val traslator = Traslator("cp://l10/traslator.xml")// 或者等同于://val traslator = Traslator("l10/traslator.xml")4.你也可以用<iclude>标签来导入其他的翻译文件:
<traslator> <iclude>https://example.com:9000/some/app/l10/traslatios.xml</iclude></traslator>iclude标签不支持相对路径,即你不能像这样包含其他的翻译文件../some/other/module.xml
关于straslator.Traslator
这是定义翻译功能的特质。你可以使用任何URL(若java.et.URL支持此协议),但以"cp://"开头(没有任何schame开头)的URL会被认为是类路径里的资源
例如,你个可以把翻译文件放到一个单独的外部服务器,https://example.com/l10/demo-app.xml,则Traslator会从对应的URL中加载翻译文件
评论