我是一名业余程序员,我想创建一个多元化的网站。我的问题是:(为了我的目的,让英文网站为1号网站,波兰语为2号)
如果您需要任何代码或某事告诉我。提前谢谢你:)
答案 0 :(得分:0)
我的建议是你开始使用任何框架。
例如,如果您使用CakePHP,则必须编写
__('My name is')
并在翻译文件中
msgid "My name is"
msgstr "Nazywam się"
然后,您可以轻松翻译成任何其他语言,并且非常容易实现。
此外,如果您不想使用Framework,可以查看此链接以查看示例如何工作: http://tympanus.net/codrops/2009/12/30/easy-php-site-translation/
答案 1 :(得分:0)
虽然这个问题由于其广泛的性质可能不是一个好的问题。它可能与许多用户有关。
我的方法是模板。 你有两个html文件的建议对于重复的明显原因是不好的 - 比如你需要在你的网站上改变一些东西。你总是需要改变两个html文件 - 坏。
拥有一个html文件然后解析它并翻译它听起来像是一个巨大的头痛。
一些模板框架可以为您提供大量帮助。我一直在使用Smarty,但这是个人选择,这里有很多选择。
我们的想法是为您的html制作模板文件,而不是使用标签的实际内容。然后在您的PHP代码中包含正确的语言,具体取决于cookie,用户设置或会话数据。
存储标签是另一个问题。将它们存储在数据库中是一个不错的选择,但是,请记住,您不希望对数据库进行100次查询以获取每个标签。你可以做的是将它们存储在一个数据库中,然后生成一个语言文件 - 一系列标签 - >翻译,以便更快地访问,并在添加/更新标签时重新生成这些文件。
或者您可以完全跳过数据库并将它们存储在文件中,但是,随着这些数据的增长,它们可能不容易维护。
答案 2 :(得分:0)
1)我认为这并没有多大区别。最重要的是确保Google可以抓取这两种语言,因此不要依赖JavaScript在语言之间切换,让所有内容都在服务器端完成,这样两种语言都可以在Google中进行抓取和排名。
2)你可以做另一个翻译,你只需要确保布局扩展以容纳更多/更少的文本而不会破坏它。也许在设计时使用lorem ipsum。
3)我会将翻译放入数据库,然后根据域名中的EN或PL来调用该特定翻译。确保网页和数据库是UTF-8编码,否则您会发现显示“有趣”字符。
答案 3 :(得分:0)
我认为对于一个业余程序员而言,最容易犯的错误是#34;在这个领域做的是允许网站的两个(或更多)语言版本发散。 (我已经看到所谓的专业人员犯了这个错误......)你需要设计它,以便共享两个版本之间的共同点,这样当需要进行更改时,你只需要在一个地方进行更改。你这样做的方式取决于你选择的工具,我不打算就此提出建议,因为它取决于很多因素,例如你的内容面向数据库的程度。
与此密切相关的是谁在进行翻译,技术开发人员和翻译人员如何协同工作,以及如何跟踪哪些内容在更改时需要重新翻译。这些本质上是过程问题,而不是编码问题,因此不适合SO。
不要期望可以翻译一种语言的网站而不会产生任何技术影响;你会发现你已经对字符串的长度,字段的顺序,字符编码和字体以及邮政编码等文化内容做了各种各样的假设,当你试图将网站转换为不同的网站时,结果证明是无效的语言。
答案 4 :(得分:-1)
您可以制作2个不同的语言文件,并使用php常量来定义要翻译的文本,例如:
lang_pl.php:
define("_TEST", "polish translation");
lang_en.php:
define("_TEST", "English translation");
现在您可以在波兰语或英语翻译之间为用户做出选择,并根据您可以包含语言文件。
因此,如果你有一个文本字段,你将它的值放在_TEST(在php括号之间)。
它会显示所选选项的翻译。
答案 5 :(得分:-1)
我工作的地方是这样做的:他们没有在他们的网站上写太多,所以他们把它保存在数据库中。由于您的标签有php,我假设您知道如何使用数据库。他们有一个名为语言的mysql表,其语言为id(在你的情况下为1,en为2,pl为2)和列中的文本。所以列名是主标题,intro_text,about_us ...当用户来时它选择语言,php请求获取该语言的页面。这很容易,因为您的内容是静态的,可以在网站上线之前进行翻译,如果您的内容是动态的(用户添加内容),您可能需要使用翻译机,因为您不能指望您的用户以所有语言编写他们的条目。