【发布时间】:2011-08-27 15:27:02
【问题描述】:
我正在运营一个教育网站,向孩子(12-15 岁)教授编程。
由于他们在解决方案的代码源中并非都说英语,因此我们使用法语变量和函数名称。 然而,我们计划将内容翻译成其他语言(德语、西班牙语、英语)。为此,我想尽快翻译源代码。 我们主要有 C/C++ 代码。
我打算使用的解决方案:
- 从源代码中提取所有变量/函数名称,以及它们在文件中的位置(它们在哪里声明、使用、调用...)
- 删除所有语言关键字和库函数
- 请翻译人员为其余姓名提供翻译
- 替换文件中的名称
是否已经有一些开源代码/项目可以做到这一点? (对于第 1,2 和 4 点)
如果没有,第一个中最困难的一点:使用 C/C++ 解析器构建语法树,然后提取变量及其位置似乎是要走的路。你有其他想法吗?
感谢您的建议。
编辑: 正如评论中所指出的,我还需要处理 cmets,但只有少数几个:完整的解决方案已经用纯文本进行了解释,然后我们展示了带有自我解释变量/函数的代码源名字。源代码的长度很少超过 30/40 行,如果您已经知道代码在做什么,那么好的名称必须在没有 cmets 的情况下使其易于理解。
附加信息:对于感兴趣的人来说,该网站是国际信息学奥林匹克竞赛的培训平台,C/C++(至少是编程竞赛所需的最低要求)并不难学12 岁。
【问题讨论】:
-
尝试将代码直接放入谷歌翻译。它只翻译单词做得很好。它“意外”翻译的事情可以通过运行代码来处理,该代码用已知的替代品替换它们。
-
有些人会质疑使用 C/C++ 来教那个年龄的孩子的决定,但据我所知,我在 15 岁时编写了 C 并且没有受到任何损害。 (在更早的时候写 Pascal 对我的伤害更大,因为那里的许多关键字我没有任何发音指南。我花了好几年才停止发音“begin”,就好像它是以色列总理一样)。
-
我认为这不是一个好主意。一个正确的外来词比一个不正确的本地词好。翻译者在翻译时将有 0 个上下文。很多词都有同音字,怎么解决?我不会翻译源代码,我会保持原样。此外,12-15 岁的孩子都已经在学校学习英语了。
-
@Karl Knechtel:我在这里使用 C/C++ 作为快捷方式。在实践中,可以认为我们正在用 C I/O(为了速度)和仅限于 struct 的类(+ 一些方法,如
< operator)来教授 C++。重点不是“C”或“C++”,而是要利用每种语言的优点和一个目标做一些 C++:用简短的代码快速编写算法挑战,没有任何错误。 -
WTF 工作你有初学者在 I/O 速度重要的地方做吗?
标签: c++ c localization