繁体   English   中英

Django:不支持字符串翻译

[英]Django: Not working the translation of strings

我正在研究Django,并面临翻译字符串的问题。 该代码是Telegram机器人的发送键盘。 在代码中,您将看到SQL请求,因为该漫游器是在纯python上编写的。 我需要根据用户发送的文本在“ ru”或“ en”(默认)上翻译键盘文本。

def bot_message(request):
    def settinngs(chat_id, message):
       con = lite.connect('db.sqlite3')
       cur = con.cursor()
       sql = "SELECT City, Lang FROM Userprofile WHERE Id={} ".format(chat_id)
       cur.execute(sql)
       result = cur.fetchall()[0]

       keyboard = types.ReplyKeyboardMarkup(row_width=2, resize_keyboard=True)
       button_change_city = types.KeyboardButton(text=_('Change name city'))
       button_subs = types.KeyboardButton(text=_('Subscriptions'))
       button_change_language = types.KeyboardButton(text=_('Change language'))
       backs_button = types.KeyboardButton(text=_('Back'))
       keyboard.add(button_change_city, button_subs, button_change_language, backs_button)
       bot.send_message(message.chat.id,
                     '{}{}\n{}{}'.format(_('Your city: '), result[0].capitalize(), _('Language: '),
                                         result[1]), reply_markup=keyboard)

我创建了.po和compilemessages .mo文件中的翻译

LANGUAGES = (
    ('ru', 'Russian'),
    ('en', 'English'),
)

USE_I18N = True
LOCALE_PATHS = (
     os.path.join(BASE_DIR, 'locale'),
) 

并在MIDDLEWARE中设置

MIDDLEWARE = [
   'django.middleware.locale.LocaleMiddleware',
   'django.middleware.security.SecurityMiddleware',
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django.middleware.common.CommonMiddleware',
   'django.middleware.csrf.CsrfViewMiddleware',
   'django.contrib.auth.middleware.AuthenticationMiddleware',
   'django.contrib.messages.middleware.MessageMiddleware',
   'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

我究竟做错了什么?

尚未完全理解您的问题,您可能会描述得更多,但是当您遵循翻译模块时,代码应该可以正常工作。

正如我在您的代码中看到的那样,这是您在代码中缺少的一些设置:

# in your setting file
# define default language code 'ru' or 'en'

LANGUAGE_CODE = 'en'

在您的视图或控制器中,不要忘记导入翻译模块-

# for translation, in your case
from django.utils.translation import ugettext as _

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM