翻译服务服务器

TranslationsServer的Python项目详细描述


翻译服务器

https://api.travis-ci.org/GreenelyAB/TranslationsServer.svg?branch=master

管理、存储和交付翻译。

定义

一个translation以一个键开始,通常是文本的英文版本。 每个键都可以有另一种语言的翻译。那就是 翻译的第二个参数。

翻译也可以取决于国家,这是第三个参数。

最后一个参数指定翻译的复数版本。这是 当翻译指的是某个数量时需要 取决于那是多少。

查找翻译的规则

获取翻译的参数为:

  • :要翻译的文本
  • lang:用于翻译的语言,如下所示 ISO 639-1
  • country[可选]翻译的国家,如下所示 ISO 3166-1 alpha-2
  • plural[可选]定义的复数形式的相关值 翻译

查找翻译的步骤如下:

  • 查找给定键的所有翻译
  • 只保留使用指定语言的文件
  • 如果没有条目,请保留与国家匹配的条目 如果国家匹配,请保留没有指定国家的国家
  • 如果指定了复数参数,请尝试查找具有该复数的条目 否则选择未指定复数值的翻译
  • 如果还有一个以上的翻译,请选择第一个,如果没有翻译 是左键,而不是以键作为翻译

安装

  • 准备Postgres数据库和用户。

  • 安装npm

  • 创建并激活 Python 3 virtual environment

  • 克隆/下载 project

  • 然后转到该项目文件夹并运行:

    $ npm install
    $ export TRANSLATIONS_SERVER_DB_URL="<YOUR DATABASE URL>"
    $ grunt migrate
    $ cd src
    $ cp config_local.py.example config_local.py
    
  • 查看并编辑此新文件config_local.py

数据库url示例

与用户连接到本地Postgres服务器上名为test'的数据库 ` postgres无密码:“postgres://postgres:@127.0.0.1/test

运行

完成安装并激活python环境后,转到 项目文件夹并启动这样的开发服务器:

$ cd src
$ ./main.py

如何在生产环境中运行服务器取决于生产环境。

运行/main.py–help获取端口选项。

运行测试

准备一个空的测试数据库并通过配置它 translations\u server\u test\u db\u url位于config\u local.py中。那就去做这个项目 文件夹并运行:

$ cd test
$ ./run_tests.py

添加和编辑翻译

每一张桌子都有语言和国家。如果一种新的语言或 国家/地区需要先更新这些表格:

translations_server=# INSERT INTO languages (language_code, name)
VALUES ('en', 'English');
translations_server=# INSERT INTO countries (country_code, name)
VALUES ('US', 'United States of America');

目前还没有对各州的支持。可以选择修改countrie 包含状态信息的代码。

然后,所有翻译都位于translations表中,该表包含:

  • 翻译ID
  • 翻译键:翻译的键(原始文本)。
  • language\u id:引用语言。
  • country\u id:引用国家。
  • 复数:此翻译用于的复数计数(变体)。
  • 翻译文本:翻译文本。

可以通过直接操作或使用 管理界面,如 Django admin(使用 Multiple databases)。

ZMQ协议

服务器在配置时接受请求端口号,并用 重播到每个请求。

每个请求应至少发送4帧,其中包含:

  • 语言
  • 国家或`""`
  • 复数或`""`

每个请求还可以成对包含更多的帧,每个帧包含:

  • 复数或`""`

例如:

"sv"
""
"User not active"
""

请求两个翻译的示例:

"sv"
""
"User not active"
""
"User not found"
""

然后,服务器应使用包含 空字符串或发送时与键一样多的帧,每个帧都包含 对应键的翻译。

只有一个包含空字符串的帧的响应向服务器发出信号 错误。

请求两个键的响应示例:

"Användare ej aktiv"
"User not found"

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
for循环的while部分在java中是执行每个过程还是只执行一次?   java Apache commons CLI未按预期进行解析?   应用程序键盘上的java错误按钮   Eclipse中java Visual Studio样式的输出控制台窗口   java如何在OpenGL中从像素中移除颜色(使其透明)   java如何修复错误“无法强制转换到com.sun.speech.freetts.VoiceDirectory”?   java如何使用jmockit创建虚拟实例?   必需变量,找到字符串java   java ListView未将ListView项选择显示到webView中   java在'synchronized(obj){…}'中'obj'参数的用途是什么?   java链表用户输入   XML-java中的非法字符   如何使用Java从maven nexus存储库下载工件列表