c++ - 将源代码翻译成外语

标签 c++ c localization

我正在运营一个教育网站,向 child (12-15 岁)教授编程。

由于他们在解决方案的代码源中并非都说英语,因此我们使用法语变量和函数名称。 然而,我们计划将内容翻译成其他语言(德语、西类牙语、英语)。为此,我想尽快翻译源代码。 我们主要有 C/C++ 代码。

我打算使用的解决方案:

  1. 从源代码中提取所有变量/函数名称,以及它们在文件中的位置(它们在哪里声明、使用、调用...)
  2. 删除所有语言关键字和库函数
  3. 请翻译人员为其余姓名提供翻译
  4. 替换文件中的名称

是否已经有一些开源代码/项目可以做到这一点? (对于第 1,2 和 4 点)

如果没有,第一个中最困难的一点:使用 C/C++ 解析器构建语法树,然后提取变量及其位置似乎是要走的路。你有其他想法吗?

感谢您的建议。

编辑: 如评论中所述,我还需要处理评论,但其中只有少数:完整的解决方案已经以纯文本形式解释,然后我们将显示带有 self 解释变量/函数的代码源名字。源代码的长度很少超过 30/40 行,如果您已经知道代码在做什么,那么好的名称必须使其在没有注释的情况下易于理解。

附加信息:对于感兴趣的人来说,该网站是国际信息学奥林匹克竞赛的培训平台,C/C++(至少是编程竞赛所需的最低要求)并不难学12 岁。

最佳答案

你确定你需要一个完整的语法树吗?我认为进行词法分析以找到标识符就足够了,这要容易得多。然后排除也出现在被包含的头文件中的关键字和标识符。

原则上,您可能希望将具有相同英文名称的不同变量翻译成法语/德语中的不同单词 - 但对于教育用途,这种风险可能很小,一开始可以忽略。您可以通过使用一些消除歧义的准匈牙利语前缀编写原始来源来回避该问题,然后使用相同的翻译机制将其删除以显示给讲英语的最终用户。

在选择翻译之前,请务必让翻译人员看到他们正在翻译的名称​​完整的上下文

关于c++ - 将源代码翻译成外语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7215476/

相关文章:

C++ 循环析构函数

c - 减法运算的-和-符号的区别

打开网页浏览器的C代码

c# - 从日语 IME 获取更多数据

visual-studio - 如何禁用 Visual Studio 中的错误本地化?

c++ - 将节点添加到链表会在 C++ 中产生运行时错误

c++ - 合并排序,使用文件的 I/O 显示 Segmentation Fault

c++ - 如何使用 QDataStream 反序列化 int 的 Vector

c - 在纯 C 中是否有易于使用的 vector/矩阵/四元数数学库?

excel - 通过互操作设置 Excel 单元的功能 - 本地化