- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是场景:
我有一个网站,我将对其进行翻译并最终在其上应用良好的 SEO。哪种方法最适合翻译内容(菜单链接、大约 10 篇文章、alt 标签、标题标签、meta 标签、html 语言等),同时可以轻松地被 Google、Bing、Yandex 和其他搜索引擎编入索引?
我的第一个想法是使用一个翻译 php 函数,它由我自己制作的数组组成(我已经有了它的原型(prototype)),它获取内容并以用户的语言显示它。
这是正确的道路吗?这里的问题是我想确保有一个动态系统,允许我在未来添加一种新语言。
也许 MySql 是正确的选择?
该网站不使用 cms,我自己用 php 制作的,但如果需要,我可以完全依赖 MySql。
提前谢谢你:)
最佳答案
您基本上有 3 个选择,每个选择各有利弊:
1: 正如 Dainis Abols 所建议的那样,将其放入数据库中 - 根据您的服务器设置方式,这可能是最慢、系统负载最重的路由(尽管这都是相对的,不太可能除非您每小时获得数百万次观看,否则会有任何不同。
2:使用PHP库文件;我倾向于将库文件用于小型的单个项目,如字段标签(名字、姓氏等),并将较大的项目(如 CMS 管理的 HTML)存储在数据库中……这减少了数据库调用,但为你加载的每个字典增加了少量开销进入脚本<?php $this->page->dictionary->product = Dictionary::load("product"); ?>
诸如此类。
3: 最后,我个人认为值得看一下 PHP 对 gettext 的实现。虽然你需要像 poedit 这样的东西维护 PO(压缩翻译文件)。这使您能够非常快速地维护翻译,因为您只需将文本包装在一个简单的下划线函数中,即可在 PHP 文档中输入文本:
例如<?= _("Hello World"); ?>
然后您在压缩的 PO 文件中维护翻译 - 它非常高效(可能比使用原生 PHP 文件更快)但是当涉及到自然语言的细微差别时它确实有一些缺点。
例如,如果您有一个字段标签“标题”<?= _("Title"); ?>
然后是 _("Title")
的所有实例将以相同的方式翻译。
这意味着您不能将“Title”同时用作人名和书名的表单标签;例如,在德语中,您可能希望将 Anrede 用于一个“标题”,将 Titel 用于另一个。
虽然,要真正使用gettext
您可能需要运行自己的服务器 - 当您更改 PO 文件时可能需要重新启动 Apache :\
至于搜索引擎,它们会从您的代码中读取输出,因此您使用哪种方法执行翻译并没有太大区别,但理想情况下您可能希望保留 URL RESTful因此,无论您是包含 PHP 词典、调用数据库还是使用 gettext(或稍后改变主意),您都可以使用类似 http://www.mysite.com/en_gb/widgets
的内容将语言映射到 URL。这样您就可以在不更改 URL 的情况下更改程序的工作方式。
关于php - 如何使用 php 高效翻译网站内容,同时保持 SEO 友好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14261748/
为了我们公司的 SEO 需求,我们需要通过 301 将一些 SEO URL 更改为另一个 URL。 示例: /seo/keywords-1-2-3/ 到 /seo/mynew301page-1-2-3
使已经开发的 Vue 应用程序对 SEO 友好的最简单方法是什么(搜索引擎可以读取所有标题元标记)。 我已经研究过 NUXT,我将不得不再次重新构建整个过程,而且除了 SSR(服务器端渲染)部分之外,
我正在使用 Azure 数据库进行一些数据库管理,我需要执行查询,例如删除数据库中的所有约束。 sp_MSForEachTable 在使用 Azure 数据库时不可用,因此我正在采用不同的方法来实现此
在我的研究中,我发现了 2 种方法。 两者都需要修改 Global.Asax 中的 Application_BeginRequest 过程,您可以在其中运行代码来进行实际的 URL 映射(我的数据库
例如我有这个字符串: make no@ sen# `se ! 我会像这样生成 url make-no-sen-se! 我有这个: var value = $('.titleVal').val(
我有一个网站,我想开始使用友好的 URL。 所以不是: http://server.com/company.php?id=12 我可以使用: http://server.com/company/ste
我正在用 pandas 编写一些数据分析管道。我一直在使用的数据框中的一列是由自定义编写的类的对象组成的,每个类都用一个字符串初始化,我用正则表达式从中读取各种信息并存储在对象的属性中。子类结构类似于
这个问题已经存在: C++ create new windows command [closed] 关闭 4 年前。 我正在尝试创建一个 C++ 控制台应用程序并创建新命令。 我想做的事的例子:在终
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 8 年前。 Improve
我一直在尝试为 prestashop 中的产品创建第二个 url 重写选项.在 SEO 和 URL 部分的标准 Prestashop 安装中,我得到了以下产品 url 构建: {category:/}
我在使用重写引擎通过友好的 url 实现我的目标时遇到了一些问题。 基本上我有以下结构:- 索引.php - 吃下 - index.php 我在主索引中的链接是这样的:下载/index.php?dow
我真的不喜欢在链接中使用选择/选项元素: 但是他们已经找到了作为一种选择进入设计师组合的方式,并尽我所能劝阻他们不要使用它们,我知道如果没有谷歌的力量,我会输掉这场战斗,而且“这对 SEO 不利”。
dispose: function() { var disposer; while (disposer = this._disposers.shift()) { // expected
我将 Heroku 应用程序上的自定义域更改为新域。现在我将创建一个新的 Heroku 应用程序,它的唯一目的是重定向到第一个应用程序。 我在 Google Webmasters 中读到我应该像这样进
我有一个类。这个类有2个字段。 我有一个整数数组。我的任务是重载友好的“+”运算符,以便可以将数组中的字段值与数组元素的值相加。 例如: class Test { public: double
这个问题在这里已经有了答案: Encode URL in JavaScript (22 个答案) 关闭 9 年前。 您好,我有这个 URL(顶部),我正在尝试与“pinterest”一起使用,他们会
jQuery 模式对话框 seo 友好吗?如果不是,我们可以进行哪些更改,以便爬虫可以轻松读取模态对话框中的内容? 提前致谢。 编辑:抱歉忘记提及模式中的内容来自服务器端。所以它也使用 ajax。 最
这是我的 main.js 文件: jQuery(function($) { $('LI.tree-item-name').has('ul').click(function() { if (
static func randomShape() -> Shape { // Find out count of possible shapes var maxValue = 0
我正在构建一个通过 index.php 运行所有代码的网站。 例如 index.php?controller=something&id=01234。 我想使用 PHP 创建友好的 URL,所以我这样做
我是一名优秀的程序员,十分优秀!