以下是小编帮大家整理的如何让你的Python程序支持多语言(共含6篇),仅供参考,大家一起来看看吧。同时,但愿您也能像本文投稿人“toffeetoffeetok”一样,积极向本站投稿分享好文章。
代码例子
import random
guessesTaken = 0
print(_(“Hello! What's your name?”))
myName = input
number = random.randint(1, 20)
print(“Well, {}, I am thinking of a number between 1 and 20.”.format(myName))
while guessesTaken < 6:
print(“Take a guess.”)
guess = input()
try:
guess = int(guess)
except ValueError:
print(“You should give me a number.”)
continue
if guess < number:
print(“Your guess is too low.”)
if guess >number:
print(“You guess is too high.”)
if guess == number:
break
if guess == number:
print(“Good job, {}! You guessed my number in {} guesses!”.format(
myName, guessesTaken))
if guess != number:
print(“Nope. The number I was thinking of was {}.”.format(number))
这是我们一个简单的猜数字游戏,我们执行看看过程,
$ python3 guess.py
Hello! What's your name?
Aidan
Well, Aidan, I am thinking of a number between 1 and 20.
Take a guess.
13
You guess is too high.
Take a guess.
2
Your guess is too low.
Take a guess.
12
You guess is too high.
Take a guess.
1
Your guess is too low.
Take a guess.
10
You guess is too high.
Take a guess.
9
Good job, Aidan! You guessed my number in 6 guesses!
程序是很漂亮了,可是老板突然要求你改成中文的,那么我们通常可能选择将字符串全部修改为相应中文,但是老板要让你自己针对不同用户不同语言就麻烦了。那有啥办法呢?Python标准库gettext可以帮助我们。
改造
我们首先用_(),然改造我们的字符串。你可以把_()想象成类似如下函数
def _(s):
spanishStrings = {'Hello world!': 'Hola Mundo!'}
frenchStrings = {'Hello world!': 'Bonjour le monde!'}
germanStrings = {'Hello world!': 'Hallo Welt!'}
if LANGUAGE == 'English':
return s
if LANGUAGE == 'Spanish':
return spanishStrings[s]
if LANGUAGE == 'French':
return frenchStrings[s]
if LANGUAGE == 'German':
return germanStrings[s]
不过,当我查看他类型时,我发现他应该是某种继承了list的扩展类型。
>>>type(_)
改造后我们的代码如下
import random
guessesTaken = 0
print(_(“Hello! What's your name?”))
myName = input()
number = random.randint(1, 20)
print(_(“Well, {}, I am thinking of a number between 1 and 20.”).format(myName))
while guessesTaken < 6:
guessesTaken += 1
print(_(“Take a guess.”))
guess = input()
try:
guess = int(guess)
except ValueError:
print(_(“You should give me a number.”))
continue
if guess < number:
print(_(“Your guess is too low.”))
if guess >number:
print(_(“You guess is too high.”))
if guess == number:
break
if guess == number:
print(_(“Good job, {}! You guessed my number in {} guesses!”).format(
myName, guessesTaken))
if guess != number:
print(_(“Nope. The number I was thinking of was {}.”).format(number))
提取字符串
Python 自带一个工具我们提取使用_()包裹的字符串
pygettext3 -d guess guess.py
它生成了如下文件:
$ cat guess.pot
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR
#
msgid “”
msgstr “”
“Project-Id-Version: PACKAGE VERSION\n”
“POT-Creation-Date: -12-24 15:35+CST\n”
“PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n”
“Last-Translator: FULL NAME
“Language-Team: LANGUAGE
“MIME-Version: 1.0\n”
“Content-Type: text/plain; charset=UTF-8\n”
“Content-Transfer-Encoding: 8bit\n”
“Generated-By: pygettext.py 1.5\n”
#: guess.py:5
msgid “Hello! What's your name?”
msgstr “”
#: guess.py:9
msgid “Well, {}, I am thinking of a number between 1 and 20.”
msgstr “”
#: guess.py:12
msgid “Take a guess.”
msgstr “”
#: guess.py:17
msgid “You should give me a number.”
msgstr “”
#: guess.py:21
msgid “Your guess is too low.”
msgstr “”
#: guess.py:24
msgid “You guess is too high.”
msgstr “”
#: guess.py:30
msgid “Good job, {}! You guessed my number in {} guesses!”
msgstr “”
#: guess.py:34
msgid “Nope. The number I was thinking of was {}.”
msgstr “”
关键字多语言multi-languagemultilanguage 首先,在你创建了一个应用程序后,需要创建一个dll,该dll包含了你程序的资源,资源的ID与你程序的完全相同,但内部的语言不同, 具体方法如下:新建一个dll项目,然后把你程序的资源文件复制到dll项目资源中即可,
关键字 多语言 multi-language multilanguage
首先,在你创建了一个应用程序后,需要创建一个 dll ,该 dll 包含了你程序的资源,资源的 ID 与你程序的完全相同,但内部的语言不同。
具体方法如下:新建一个 dll 项目,然后把你程序的资源文件复制到 dll 项目资源中即可,接下来,修改 dll 项目中资源的语言(这可能需要花一点时间)。然后只要简单修改一下你的程序代码就可以了:
在 CWinApp 继承类中,添加一个成员变量(我使用的是日语):
...
HINSTANCE hJapaneseDll //Global var
.....
在 InitInstance 中添加一下代码(粗体部分是我添加的):
CMultiLangApp::InitInstance()
{
......
//Get Language Setting from INI
uLanguage = GetProfileInt(“Language”, “Language”,0);
if (uLanguage == 1)
{
//Language is set for Japanese.
hJapaneseDll = AfxLoadLibrary(“Japanese.dll”);
ASSERT(hJapaneseDll);
AfxSetResourceHandle(hJapaneseDll);
}
.....
//create dialog or main frame
.....
}
最后,你可以添加一个菜单项或者单选按钮,用于切换语言
原文转自:www.ltesting.net
管理中最棘手的问题之一就是让你的老板采纳你认为可以产生积极效果的建议,
让同事同意你的观点是一项具有挑战性的工作,但是说服那些有权利管理你的人既是一个学科也是一项艺术。学科是用来定义业务情况,艺术是用来说服别人同意你的观点。
该学科包括用两个问题可以总结的主要概念:
它是否是对任务或使命的补充?公司做的所有事情都应该服务于其战略意图。当然事实并不总是这样,这就是为什么很多公司偏离轨道的原因。但当你向上级推销你的想法的时候,你的优势是你的想法能够如何补充公司所做的事情。例如,如果你想推动过程改进,你需要关注如何让员工更容易地做他们的工作以及如何可以为客户提供更好的服务。
我们是否有执行过程所需要的资源?很简单,你的提议从资金、人力和时间方面是否可行?如果你提议生产一个新产品,这个产品不但要补充你的产品组合,你还应该找到资源去资助研发并正确地进行推广。
现在该说艺术了。艺术一部分是心理学,很大一部分是耐心,
同样,也可以用两个问题来总结:
它是否巩固我们的价值?不管你的想法是什么,它必须巩固你们公司的价值。价值是让组织机构成员们团结一致的东西。例如,你的想法可能会促进团结协作,或者可以向客户展示出做到更好的承诺。当你列出支持你的商业案例的观点的时候,利用这些观点。
这是否让你的老板看起来很好?让我们坦白点说,你想让身处要职的人从你的想法中受益,看起来好并不是选美比赛,而是要把你的管理团队定位在精明能干、能够执行并具有前瞻性思考的能力上。如果你能找到一种可以让你的老板和你的团队都看起来很好的方式,那么你就有机会让你的想法获得实施。
这些问题仅仅是开始。你会想出反映你的组织文化的问题。考虑类似于下边的问题:
你的的想法是否具有创新性?
它是否能提高我们的质量?
我们能否承受这样做?
你的想法是否让你的公司更强大并更具有竞争力?
这些问题可以使你的商业案例具体化,也可以让你的想法与贵公司的企业文化相辅相成。
还有一个方面,那就是时间。我经常看到一些好的想法被否决,因为这些人制定的框架忽略了具体情况。也就是说他或她对当时的情况视而不见。想法可能很可靠,但是公司还面临其它挑战和其它优先事项。因此,展示一个新的想法就成了耳旁风,人们忙于手头的工作而没有精力去处理其它事情。
说服别人你的下一个想法有很多好处绝不容易,但如果你把重点放在开发一个强大的案例并且愿意倾听其他人的意见,选取合适的时机提出你的想法,你成功的机率就会增加。
“一日之始就对自己说:我将遇见好管闲事的人、忘恩负义的人、傲慢的人、欺诈的人、嫉妒的人和孤僻的人……我绝不可能被他们中的任何一个人损害,因为任何人都不可能把恶,强加于我,我也不可能迁怒于这些与我同类的人,或者憎恨他们;因为我们天生是要合作的。”这话几乎就像在说现代办公室里的每一天!
谁说的?这是古罗马时代哲学家皇帝马可.奥理略.安东尼在“沉思录”的话。
古罗马时代的皇帝拥有无上崇高地位与无可挑战的权威,可是这位皇帝每天碰上的人和我们在办公室情况没有什么两样。显然尽管科技进步,但是人性仍然没有多大改变,我们所需要处理的问题和两千年前没有什么不同。
应付公司内部的官僚系统,比和客户交涉更麻烦?
许多从事业务工作的人都有相同的感觉:怎么应付公司内部的官僚系统,比与客户交涉还麻烦?生意是一个交换的关系,我们可以用价格去谈判许多事情,大家在利益上看事情,所有的愉快与不愉快在利益之前都被压制了下来。可是公司内部的人,并不是和我做生意,别说他们不愿配合,就是他公事公办,业务人员也常常是寸步难行的。
理论上来讲,公司所有单位都要支援业务单位完成生意。可是公司部门之间并不是直接的直属关系,而且公司内部每个部门有不同的功能,有些部门的功能本来就是既有牵制又有合作,就像业务部门的出货单价会被稽核;客户需要的产品规格公司做不来(技术上可行,但成本太高);客户需要的出货时间公司无法配合,等等一堆问题都在挑战业务人员的修养。
既然每个部门有它自己的功能,为什么一个部门要去帮别的部门考虑呢? 如果财会部门的出货价格稽核,老是考虑生意好不好做的问题,任何价格都可以支持业务的决定,他怎么可能做好价格稽核的工作呢?生意接单当然很重要,但是订单也是品质的考量,什么订单都接,什么交易条件都同意,到时候出了货,收不到钱,再来争议谁的责任就于事无补了。
只在乎自己部门事务的“本位主义”,本来就是正常的人,只会在乎自己相关的事物,会先考量自己的责任问题。这种只在乎自己部门事物的本位主义。本来就是再正常不过的事了。“签字就是牵制”,每一个在出货订单上需要签字的人,其实都有“牵制”业务单位的功能。而这也是组织设计的目的,组织的设计本来就是要每个人只要把自己工作做好,没有人成为别人的负担,大家不用担心其他部门,然后这个组织自然就能运作。
问题是这世界并不是照我们想像的设计去运作,公司内总有人会出问题;错误不是在公司里面,就是在客户、错误不在今天,也许就在明天。而这之间的弹性处理,就是业务人员的工作了。
业务的工作本来就不会有标准流程,如果业务工作有标准作业流程,那就订一个价格,让客户上网订购就可以了,这完全不需要业务人员参与。我们的工作本来就是要提供给客户非制度化,超越标准作业的服务。
现代组织能标准化作业的工作,都已经标准化了,剩下就是需要弹性作业的业务工作。我们身为一个业务人员,要如何面对公司内部的官僚系统,争取到生意呢?
1. 利他就是保护自己
人本能的会保护自己的利益,那我们把自己变成同事利益的一部分,同事在保护自己利益的时候,就会把我们一起考虑进去了。
公司内部门之间不做生意,就没有交换关系了吗? 一个微笑,换一个点头,这是以物易物的交易。公司部门与部门之间怎么会没有交换或利益关系呢?只是没有拿真金白银做交易罢了!
当我们表达了善意、提供了好处,给我们的同事,不管他是否是同一个部门,我们就是分享利益给同事。尤其是当我们主动的提供好处给我们的同事时,我们就能提升我们的同事关系到友谊的层次,从“交换”变成“交情”了。这对于我们要完成的业务工作有绝对正面的帮助。
相反的,如果我们用竞争的态度,而不是合作的方式与同事相处,我相信我们的同事也会用竞争的态度与我们相处。甚至我们在引导办公室充满了政治气氛,这可能使我们很难取得内部的支持来完成工作。
当你看到一个漏洞,或者发现某个部门成员陷入困境,要主动并给予帮助;或者对于别的部门需要业务单位配合纸上作业的工作,表达愿意积极合作态度,这会让你显得与众不同,效果远好于夏天进办公室时带冷饮给这些同仁。
2. 准备至少沟通五次吧
并不是所有行政系统的人都能体会你的诚意,这些人如果真的那么懂得如何因势利导便宜行事,就不会在行政单位上了。
行政单位上多得是公事公办的同事,他们不见得故意要找你麻烦,他们只是不愿承担风险。(SOP也就是组织官僚化的美称,常常是每个步骤都对,手术很成功,但病人死了。)
不管是行政单位的同事,甚或是你的直属长官,他们就像业务人员每天在外面碰到的客户一样,他们本来就没有同意你要求的义务,他们守住规定,就尽了他们的责任。
行政系统不能支持你的决定,那是业务人员自己要去操心的事。你唯一的办法就是持续的沟通,准备至少沟通五次吧。春秋时代孙武操练女兵,都还需要“三令五申”,孙武是大将军,都能三令五申了,为什么我们从事业务工作的人,不能为了我们认为应该做的事,至少沟通五次呢(既不能令,又不受命,我们也就“申”个五次吧)!
当你愿意为你想完成的任务沟通五次,你心里应该自我反覆想过这是否是一个值得争取的生意;而你的公司经过你五次的争取,你的提案也应该变成一个公开的议题,是否值得做这个生意,已经被讨论得很清楚,而不是你自己或是哪个行政同事可以阻挡的事了。
最后,要提醒所有从事业务工作的人;“将在外,君命有所不受”是在明智君王的时代才可偶而为之,不是惯例!古往今来的名将,功成名就又得善终的,哪一个不是在朝廷中有皇帝或重臣的支持。反之,若得不到朝廷支持,不管如何善战,功劳有多大?最后都不能善终。业务工作,支援/资源到哪里,生意就做到哪里!业务人员要在外面做成生意,先处理好公司内部关系吧。
文/亚瑟的业务笔记
现在有很多病毒,尤其是木马程序,都是通过诱使用户点击网页或者聊天程序之中的某个链接来实现对用户电脑的感染的,如果你的朋友或者客户发送给你一个无法确定是否安全的网址,不打开的话又可能会错过有用的信息,该怎么办呢?
现在很多软件的安装程序都会集成一些所谓的“流氓软件”或者“恶意软件”,如果你需要安装使用这个软件而又害怕那些讨厌的“流氓软件”一起被安装到你的电脑上,又该怎么办呢?
如果你正受到上面提到的问题的困扰,那么就有必要试试“沙盘(Sandboxie)”这个软件了,沙盘的作用是让指定的程序运行在一个虚拟的环境之中,程序向磁盘中写入的任何数据,包括文件、注册表键值等等,都会被写入到一个单独的目录之中,而不是程序原本指定写入的位置,这样就可以保证系统不会被这个程序所写入的任何数据所破坏。程序运行结束后,你可以删除掉沙盘所保留的程序写入的全部数据,就像是这个程序从来都没有在你的电脑上运行过一样。
利用沙盘的运行原理,我们可以放心的在电脑上测试任何程序,确保程序没有问题后,再让其脱离沙盘的保护直接安装或运行。对于那些无法让人放心的网址链接,只要让浏览器工作在沙盘之中,就可以放心的打开,就算网页上有病毒,看过之后直接删除沙盘保存的内容就没有问题了,
沙盘的界面和使用都非常的简单,程序安装后会在系统托盘中显示一个黄色的图标,如果程序在沙盘中运行,图标上就会出现一些红色的小点,非常容易辨认。右键点击这个图标,选择“DefaultBox”,就可以看到程序已经为我们设置好的几个捷径,我们可以直接选择在沙盘中运行浏览器、邮件程序、开始菜单或者资源管理器,如果你想要在沙盘中运行其它程序,只要选择“运行任意程序”,然后选择需要的程序即可。
要区分哪个程序是工作在沙盘之中,也非常的容易,沙盘中所运行程序的标题栏文字两侧都会有“[#]”的标志,只要看到这个标志,就可以确定程序是工作在沙盘之中了。
除了使用上面提到的“DefaultBox”这个沙盘,程序还允许你建立其它的沙盘,并对每个沙盘可以拥有的写入权限分别进行设定,让运行在不同沙盘之中的程序能够拥有不同的写入磁盘的权限,而并不是完全都不能将任何数据直接写入到磁盘之中。
为了系统使用的安全,建议你创建一个专门用于对待可能含有病毒的程序或链接的沙盘,在“沙盘设置”中将“删除”-“调用”里面的“自动删除沙盘中保存的内容”这一项选中,以避免可能被沙盘保留下来的病毒会因为其它原因扩散并感染你的系统。
日本,何时让中国支持你入常?
日本,何时让中国支持你“入常”?
德国总理施罗德9日将前往莫斯科,首次参加在那里举行的反法西斯战争胜利庆典活动。动身之前,他和俄罗斯总统普京一起接受德国《图片报》采访,作为受害国的总统,普京明确表示,鉴于德国已很好地清算了纳粹罪行,俄罗斯支持德国成为安理会常任理事国的努力。
日本何时让受害国中国支持你“入常”?那就是日本政府也很好地清算了军国主义罪行的时候。而日本政府最近做了什么?同中国和韩国争领土,步步为营;篡改教科书,美化二战侵略,毫不脸红;参拜供奉二战甲级战犯的靖国神社,冠冕堂皇;插手台湾海峡两岸统一问题,不安自己的本分;单方面划界东海,没有合作态度的单边行为。
不用讳言,中国民间抵制日货的声音,的确有失理智。但“果”前面是“因”,是日本政府张狂的因,造成了中国民间的自发行动。因果还有不对称的地方。“因”,是日本小泉政府种下的,“果”是中国民间的自发行动,中国政府一直呼吁秩序,呼吁在法律范围内发表自己的意见,官方媒体也是低调处理的。
正在日本京都出席第七届亚欧外长会议的中国外长李肇星7日晚指出,目前中日关系出现的困难局面,是我们不愿意看到的,必须正视问题产生的根源,不能本末倒置。此话点到了要害。
日本首相小泉纯一郎6日对俄罗斯媒体表示,第二次世界大战后日本一贯坚定奉行的信念是:“只做经济大国,不做军事大国;只用和平手段解决任何问题,而不借助武力”。他说的和做的一致吗?前半句是一致的`,日本已经是经济大国了。后半句就不一致,日本的军费开支世界第二。不想做军事大国,用那么多钱发展尖端武器干什么?何况发展那么多!
普京说:“现在德国已经从第二次世界大战期间所犯下的暴行中得出正确结论。现在德国已经弥补了罪行,并建立了防止过去悲剧重演的机制,我们不能再强迫德国现在和后世人……继续鞭挞自己。”
日本想成为正常国家,日本人民想在世界上发挥更多的作用,都是可以理解的。但是,要首先把歪曲历史的教科书改回来;要立法限制军国主义的复活――包括不许政府工作人员参拜靖国神社,把军费大大的降下来;改变把台湾海峡纳入日本军事势力范围的安排;在钓鱼岛和东海划界问题上,尊重历史,尊重事实。只有像德国一样建立起“防止过去悲剧重演的机制”,日本才能弥补罪行,才有资格谈“入常”。
中国作为联合国五大常任国,也希望日本人民在世界上发挥更重要的作用。须要说明的是,要发挥积极的作用,而不是消极的作用。亚洲不需要“警长”“副警长”,更不需要劣迹斑斑又无悔意的“副警长”。目前,日本小泉政府要有行动。“入常”受阻后,仅仅凭一句名不符实的话,是博得不了同情的,世界爱好和平的人民在看小泉政府的行动。
李肇星7日晚就提出要求:根据中日三个政治文件的原则,妥善和正确处理历史和台湾问题,维护中日关系的政治基础。关键是日方要把在历史和台湾问题上所作的承诺切实落实在行动上,不再做伤害中国人民感情的事。
“反对改坏教育基本法5・7全国集会”7日在东京都代代木公园举行。来自日本各地约300个民间团体的近6000人参加了集会,与会者强烈批判了新历史教科书编撰会歪曲历史的教科书,并反对日本国会准备修改教育基本法。日本民间团体行动了,世界渴望和平的人民――包括日本人民――期待着小泉政府的行动
★ 安卓多语言设置
★ 规章制度程序
★ 工作支持感谢信
★ 支持的近义词
★ 网络支持个人简历