Django - 从西里尔文到拉丁文的数据翻译

时间:2014-03-09 21:19:40

标签: python django string-conversion transliteration

我正在尝试创建一个应用程序,用塞尔维亚语(用西里尔文和拉丁文编写)存储一些数据,根据用户的选择,它可以在选择的脚本中显示它。从西里尔语到拉丁语的转换非常简单,因为每个西里尔字母都有其拉丁语中的模拟(或两个)('Б' - >'B','Ш' - >'Š','Љ' - >'LJ'......),但反过来可能会有点复杂('LJ' - >'Љ'或'LJ' - >'ЛЈ',没有办法告诉程序如何决定,即使大多数时候'LJ' - >'Љ'将是正确的选择)。无论如何,我要去西里尔语输入,但我需要拉丁语和西里尔语输出。所以,我的问题是:实现这一目标的最有效方法是什么?我应该在 forms.py 中进行字符串转换并将数据存储在不同的表中(效率不高),还是在视图中进行转换更好?模板中的一些JavaScript是我猜的另一种选择,但我相信这不是一个好主意。我对Django很新,所以如果我要胡说八道,请原谅。

1 个答案:

答案 0 :(得分:1)

我认为将塞尔维亚语西里尔语(官方语言)和塞尔维亚语拉丁语作为两种不同的“语言”处理起来最容易。比你获得Django框架及其internationalization and localization机制的所有好处。

区域设置名称:srsr_Latn

<强>更新

Above负责模型,视图,表单和模板中的字符串。但是您需要翻译数据库值。

如果您可以自动翻译(没有或很少例外),您可以使用custom template filter。但是,如果您希望编辑能够纠正未预见的异常,那么您必须创建数据库字段来存储翻译。就像你在任何多语言项目中一样。有很多模型结构和应用程序可以做到这一点。这一切都取决于您的项目需求。