标签: gettext

如何使用PO编辑器将新字符串添加到*.po文件中

我手动创建了一个文件:test.po,内容如下:

msgstr"问候"
msgstr"Hello World"

现在我可以在编辑器中编辑翻译(hello world),如"poedit"和"GTranslated"(我正在使用Ubuntu).我甚至可以为该翻译添加评论.然而,"poedit"和"GTranslated"都不会让我添加一个新的翻译字符串 - 我在网上看起来没有用,看着其他编辑的截图,似乎没有一个"新"按钮.

我错过了什么?使用"普通"文本编辑器编辑新密钥然后在这些PO编辑器中编辑它们(无论它们可能是什么)似乎很愚蠢.(如果你不能说我是这个'gettext'世界的新手 - 我正在用Zend/PHP构建一个网站.)

translation gettext poedit

18
推荐指数
3
解决办法
4万
查看次数

找不到msguniq.确保安装了GNU gettext工具0.15或更新版本.(Django 1.8和OSX ElCapitan)

我正在尝试通过遵循精彩的Django文档来国际化Django应用程序.问题是当我尝试运行命令来创建语言文件时:

python manage.py makemessages -l fr
Run Code Online (Sandbox Code Playgroud)

它输出一个错误:

CommandError: Can't find msguniq. Make sure you have GNU gettext tools 0.15 or newer installed.
Run Code Online (Sandbox Code Playgroud)

我的配置:

  • 操作系统:OSX El Capitan v10.11.3
  • Python:v3.5
  • Django:v1.8

python django macos gettext osx-elcapitan

18
推荐指数
4
解决办法
9803
查看次数

如何使用带有python> 3.6 f-strings的gettext

以前您将使用gettext以下内容:

_('Hey {},').format(username)
Run Code Online (Sandbox Code Playgroud)

但是新的Python的f-string怎么样?

f'Hey {username}'
Run Code Online (Sandbox Code Playgroud)

python gettext f-string

18
推荐指数
2
解决办法
1314
查看次数

完成C++ i18n gettext()"hello world"的例子

我正在寻找一个完整的i18n gettext()你好世界的例子.我已经使用 G. Mohanty的GNU gettext开始了一个基于本地语言支持的教程的脚本.我正在使用Linux和G ++.

码:

cat >hellogt.cxx <<EOF
// hellogt.cxx
#include <libintl.h>
#include <locale.h>
#include <iostream>
#include <cstdlib>
int main (){
    char* cwd = getenv("PWD");
    std::cout << "getenv(PWD): " << (cwd?cwd:"NULL") << std::endl;
    char* l = getenv("LANG");
    std::cout << "getenv(LANG): " << (l?l:"NULL") << std::endl;
    char* s = setlocale(LC_ALL, "");
    std::cout << "setlocale(): " << (s?s:"NULL") << std::endl;
    std::cout << "bindtextdomain(): " << bindtextdomain("hellogt", cwd) << std::endl;
    std::cout << "textdomain(): " << …
Run Code Online (Sandbox Code Playgroud)

c++ linux gettext internationalization

17
推荐指数
2
解决办法
2万
查看次数

如何为自定义Drupal 7模块生成翻译文件?

我使用的是CentOS 5.5 Linux(没有X),PHP 5.3和Drupal 7.0.

我网站的核心语言是俄语(不是英语)!

我创建了一个game.info和以下game.module,为首页生成3个块:

function game_block_info() {
  return array(
  'game_main' => array(
    'info' => t('Set FlashVars and show the flash game.'),
    'cache' => DRUPAL_NO_CACHE,
  ),
  'game_winner' => array(
    'info' => t('Show the winner of the last week.'),
    'cache' => DRUPAL_NO_CACHE,
  ),
  'game_leader' => array(
    'info' => t('Show the leader of the current week.'),
    'cache' => DRUPAL_NO_CACHE,
  );
}


function game_block_view($block_name = '') {
  global $user;

  if ($block_name == 'game_main') {
    if (user_is_logged_in()) { …
Run Code Online (Sandbox Code Playgroud)

localization drupal gettext internationalization drupal-7

17
推荐指数
1
解决办法
2万
查看次数

django页面中的'模糊'翻译?

我做了一些研究,发现当字符串被标记为"模糊"时,django翻译不会出现.

但是,我无法找到有关是否可以覆盖此行为的任何文档.

是否有Django设置可用于允许Django (或gettext)使用"模糊翻译"?


我知道很多自动翻译并不完美,但这是用于开源产品的演示,开发和测试.

我宁愿用户能够使用他们自己的语言开发"近似"翻译,然后将其用作激励,以便随时检查它们.

python django gettext django-i18n

17
推荐指数
1
解决办法
2599
查看次数

如何在Windows 7上安装GNU gettext?

我需要安装0.15或更高版本的GNU的gettext,以便我可以使用django的一些i18n feateres.

我已下载:

http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.3.1.tar.gz

来自https://www.gnu.org/software/gettext/

但是我不知道如何安装它,他们的网站上没有安装指南.我该如何安装?

windows gnu gettext django-i18n

16
推荐指数
3
解决办法
2万
查看次数

无法在Ubuntu上运行gettext(php)

以下示例适用于使用Apache的Mac OS X,即我将已翻译的字符串回显.但是在使用lighttpd的Ubuntu上,我得到原始文本"非活动帐户".我已经尝试了各种各样的环境varialbes组合而没有任何运气.它不是文件权限,因为我可以回显.mo文件的内容.

<?php

//$locale = 'sv_SE.UTF-8';
$locale = 'sv_SE';

$dir = dirname(__FILE__);

// File permission is apparantly not a problem as this works...
//echo file_get_contents($dir . '/sv_SE/LC_MESSAGES/flattr.mo');

putenv("LANG=$locale");
putenv("LANGUAGE=$locale");
putenv("LC_ALL=$locale");
putenv("LC_MESSAGES=$locale");
setlocale(LC_ALL, $locale);
setlocale(LC_MESSAGES, $locale);
//setlocale(LANG, $locale);
//setlocale(LANGUAGE, $locale);

bindtextdomain('flattr', $dir);
//bind_textdomain_codeset("flattr", 'UTF-8');
textdomain('flattr');

echo _("Inactive account");

?>
Run Code Online (Sandbox Code Playgroud)

有人有主意吗?

php ubuntu gettext php-gettext

15
推荐指数
1
解决办法
2万
查看次数

对于一段代码,Django切换切换语言,以便用一种语言完成翻译

我有一个django项目,它使用一个向用户发送电子邮件的工作进程.工作进程侦听rabbitmq服务器并获取有关要发送的电子邮件,模板变量,要发送到的电子邮件地址等的所有详细信息.电子邮件正文使用django templates和render_to_string创建.

但是我想把这个国际化.我们的一些用户将使用英语网站,其中一些使用其他语言.他们应该用他们的语言收到电子邮件.我试图使用电子邮件工作进程(使用django.utils.translations.ugettext/ugettext_lazy),以便电子邮件主题和电子邮件正文具有_(...)或{%blocktrans%} resp.

但是,由于电子邮件是在不同的后台工作进程中呈现和发送的,因此正常的django语言检测过程似乎不适用.它没有用户会话,没有cookie或没有http标头可供查看.将消息发送到rabbitmq服务器时,我可以存储语言代码

但是我如何告诉django/gettext在某一点上使用该语言.

例如,我发送电子邮件的函数可能如下所示:

def send_email(details):
  lang = details['lang']
  name = details['name']
  email_address = details['email_address']

  switch_gettext_to_this_language_what_goes_here(lang):
  # ?????
  email_subject = _("Welcome to $SITE")  
Run Code Online (Sandbox Code Playgroud)

如何将django translations/gettext切换为特定的语言代码以便_()使用该语言代码?

python django translation gettext internationalization

15
推荐指数
4
解决办法
7187
查看次数

.PO(gettext)文件的3路Git合并驱动程序在哪里?

我已经有了以下内容

[attr]POFILE merge=merge-po-files

locale/*.po POFILE
Run Code Online (Sandbox Code Playgroud)

.gitattributes同一个本地化文件(例如locale/en.po)已经在并行分支中修改时,我希望合并分支以正常工作.我目前正在使用以下合并驱动程序:

#!/bin/bash
# git merge driver for .PO files (gettext localizations)
# Install:
# git config merge.merge-po-files.driver "./bin/merge-po-files %A %O %B"

LOCAL="${1}._LOCAL_"
BASE="${2}._BASE_"
REMOTE="${3}._REMOTE_"

# rename to bit more meaningful filenames to get better conflict results
cp "${1}" "$LOCAL"
cp "${2}" "$BASE"
cp "${3}" "$REMOTE"

# merge files and overwrite local file with the result
msgcat "$LOCAL" "$BASE" "$REMOTE" -o "${1}" || exit 1

# cleanup
rm -f "$LOCAL" "$BASE" "$REMOTE" …
Run Code Online (Sandbox Code Playgroud)

git merge localization conflict gettext

15
推荐指数
2
解决办法
2443
查看次数