1
2
无论您是使用数据库还是文件系统来存储翻译,都应该同时加载文本,然后从内存中为其提供服务。大多数应用程序通常不会有太多文本,这会成为一个问题。在Java或.NET中,这可以通过将文本存储在单体或静态对象中来实现。然后所有字符串都在RAM中,不需要加载或解析。如果您的平台没有在RAM中存储数据的方便方法,您可以运行单独的缓存应用程序,如memcached。 通过隐藏细节可以减轻您的其他顾虑。构建或找到一个框架,让您可以加载您的翻译,然后用某个键查找它们。如果您决定稍后切换到文件或数据库,其余代码将不受影响。在短期内,做对你来说容易的事。我发现最好是混合使用:在版本控制系统中管理应用程序文本和源代码更容易。但是有些文本经常更改,或者需要在不需要构建+部署周期的情况下进行更改,并且该文本应该在数据库中。 最后,不要用其中的替换来构建字符串。使用某种格式字符串,否则您的翻译人员会疯狂地尝试翻译句子片段。 (警告:Java代码示例)
另一个人提到了在URL中对语言进行编码。如果你关心搜索引擎对你的网站的看法,这是最好的方法。谷歌建议使用不同的主机名或不同的子目录。这意味着用户发送的语言标题不能用于任何内容,除非最初将它们发送到一个或另一个登录页。您将需要根据传入的URL来确定每个请求的语言(这实际上简化了以后的代码)。在Java中,我将把语言代码存储在请求中,只要需要就抓取它。
在URL中处理语言代码的最简单方法是使用重写。客户机发送请求
|
2
1
结帐 how Django does it --这应该是有启发性的。 |
3
0
“恐怕所有时间访问[数据库/文本文件]都非常耗时” 可能是这样,但这就是为什么您可能在某种程度上使用缓存的原因。几乎所有大型站点都在访问存储在HTML页面之外的数据,因此,需要时使用缓存技术。 你关于速度的问题实际上与使用多种语言无关。这是一个存储数据(内容)的问题,因此很容易维护并呈现给用户。不管是一种语言还是10种语言,问题都是一样的。 |
4
0
尽可能创建网站的最通用形式。从数据库导入翻译,并返回(即语言顺序,如果翻译不存在,则使用下一个最佳语言(德语:德语、荷兰语、英语等)。 您可以通过保存动态创建的页面的缓存来解决性能问题。[检查相关数据,必要时更新] 在HTTP请求头中传递用户希望使用的完整语言。通常不需要使用select语言+查询字符串。 资源文件是一种方法。它更容易发送给翻译人员。然而,在多个网站之间复苏可能很困难。 数据库很方便,因为它是第一件应该在网站上备份的事情。它还具有快速的好处。但是,如果您有一个非常注重数据库的项目,您可能不想在数据库上增加额外的压力。 |
5
0
对于我的解决方案,我希望:
第一个很容易通过一个类似于 http://example.com/fr/and-so-on . URL重写可以将其转换为 http://example.com/and-so-on?lang=fr 这可能更容易处理。 对于预生成翻译,最好使用HTML模板框架,这样您就可以从一组源模板生成翻译后的模板。钝器方法是从语言键值文件生成一个SED脚本,并在每个模板上运行该SED脚本以获得翻译版本。 接下来剩下的就是翻译页面中动态生成的部分。有一些工具用于Java的捆绑,GNU GETTEX是一个非常好的工具。 |
Hatsune Miku · 比较或if语句是否更快[已关闭] 1 年前 |
Black Swan · 无法解压缩的值太多(应为2)错误 1 年前 |
Kai · 有什么方法可以轻松优化VSCode中的锈迹? 2 年前 |
Balfar · 处理NumPy阵列上的循环最有效的方法是什么? 2 年前 |
Daniel · C#轻松存储快速访问的大型位矩阵 6 年前 |
halbe · 优化音频DSP程序的numpy计算 6 年前 |
Afsara · 是否有任何方法不能优化我们的应用程序? 6 年前 |