helsingborg-stad / wp-content-translator
WordPress中的简约内容翻译。
README
WordPress中的简约内容翻译。该插件处理文章、文章元数据、选项、站点选项(多站点)和用户元数据的翻译。
虽然插件也处理评论和评论元数据,但它们不会被翻译。评论将被映射到特定语言(发布评论时的语言),并将为此特定语言显示。还有一个选项使语言继承其他语言的评论。例如,北欧语言非常相似,因此我们希望加载丹麦语和挪威语的评论,以及瑞典语的评论。
翻译
GUI可用语言
- 英语
- 瑞典语
- 挪威语
REDIS & Memcached
如果您使用redis或memcached,您需要根据所选语言定义一个哈希键。哈希键设置后不能在运行时更改(定义为常量)。将此添加到您的配置中
if (isset($_COOKIE['wp_content_translator_language']) && !empty($_COOKIE['wp_content_translator_language'])) { define('WP_CACHE_KEY_SALT', NONCE_KEY.$_COOKIE['wp_content_translator_language']); } else { define('WP_CACHE_KEY_SALT', NONCE_KEY); }
语言选择器
您可以使用默认语言选择器(基本的html <select>
元素)或创建一个具有自定义标记的语言选择器。
使用 wp_content_translator_language_selector()
函数显示语言选择器。如果您想使用默认选择器,只需运行函数而不带任何参数。如果您想创建自定义选择器,有选项可以传递包装器和“语言行”的标记。
在标记中使用可用的模板标签
包装器
- 字符串 languages(显示语言行)
语言行
- 字符串 code(sv_SE)
- 字符串 name(瑞典语)
- 字符串 nativeName(Svenska)
- 字符串 url(//domain.tld/?lang=sv_SE)
- 字符串 isCurrent(如果是当前语言,则为" is-current",否则为空字符串)
wp_content_translator_language_selector( $wrapper = '<ul>{{ languages }}</ul>', $element = '<li><a href="{{ url }}" class="{{ isCurrent }}">{{ name }}</a></li>' )
配置
每个翻译组件都有自己的配置过滤器,可以用来更改其配置。
function my_custom_config($config) { $config['key'] = 'my value'; return $config; } add_filter('wp-content-translator/configuration/{{component}}', 'my_custom_config');
wp-content-translator/configuration/general
可用的配置
- 布尔值 translate_fallback - 是否回退到默认语言
- 字符串 translate_delimeter - 要使用的分隔符
wp-content-translator/configuration/post
可用的配置
- 布尔值 translate - 是否使用组件
wp-content-translator/configuration/{评论/元数据/用户/选项/站点选项}
可用的配置
- 布尔值 translate - 是否使用组件
- 布尔值 translate_hidden - 是否翻译以下划线开头的选项
- 布尔值 translate_numeric - 是否翻译数值
- 数组 untranslatable - 包含不可翻译选项键的数组
- 数组 translatable - 包含可翻译选项键的数组
过滤器
wp-content-translator/should_download_wp_translation_when_installing
决定插件在安装语言时是否下载WP语言包。
@param string $answer
- 默认答案@param string $code
- 语言代码@param \ContentTranslator\Language $language
- 语言对象
function my_download_wp_translation(bool $answer, string $code, \ContentTranslator\Language $language) { if ($code === 'sv_SE') { return false; } return $answer; } add_filter('wp-content-translator/should_download_wp_translation_when_installing', 'my_download_wp_translation', 10, 3);
wp-content-translator/admin_bar/current_lang
过滤管理栏中的当前语言名称。
@param string $language
- 语言名称@param string $code
- 语言代码
function my_admin_bar_current_lang(string $language, string $code) { if ($code === 'sv_SE') { return 'Skånska'; } return $language; } add_filter('wp-content-translator/admin_bar/current_lang', 'my_admin_bar_current_lang', 10, 2);
wp-content-translator/redirect_after_uninstall_language
语言被卸载后要重定向到的地方。
@param string $url
- 默认重定向URL@param string $code
- 语言代码@param \ContentTranslator\Language $language
- 语言对象
function my_after_uninstall_redirect(string $url, string $code, \ContentTranslator\Language $language) { return 'http://www.helsingborg.se'; } add_filter('wp-content-translator/redirect_after_uninstall_language', 'my_after_uninstall_redirect', 10, 3);
wp-content-translator/comment/connections
设置评论的继承。为一种语言加载来自多种语言的评论。例如:如果当前语言是瑞典语,则加载瑞典语、挪威语和丹麦语的评论。
@param array $connections
- 默认连接@param string $code
- 语言代码
function my_comment_connections(array $connections, string $code) { return 'http://www.helsingborg.se'; } add_filter('wp-content-translator/comment/connections', 'my_comment_connections', 10, 2);
wp-content-translator/{$component}/is_installed
元类型翻译组件是否已安装?
可用组件:文章、评论、选项、站点选项、元数据(文章元数据)、用户(用户元数据)、评论(评论元数据)
@param bool $isInstalled
- 默认已安装值@param string $code
- 语言代码
function my_is_usermeta_installed(bool $isInstalled, string $code) { if ($code === 'sv_SE') { return true; } return $isInstalled; } add_filter('wp-content-translator/user/is_installed', 'my_is_usermeta_installed', 10, 2);
wp-content-translator/{$component}/remove_when_uninstalling
是否在卸载翻译组件时删除元数据。
可用组件:文章、评论、选项、站点选项、元数据(文章元数据)、用户(用户元数据)、评论(评论元数据)
@param bool $shouldRemove
- 默认应删除值@param string $code
- 语言代码
function my_should_remove_meta(bool $shouldRemove, string $code) { if ($code === 'sv_SE') { return true; } return $shouldRemove; } add_filter('wp-content-translator/user/remove_meta_when_uninstalling_language', 'my_should_remove_meta', 10, 2);
wp-content-translator/{$component}/should_translate_default
shouldTranslate
方法的默认返回值
可用组件:文章、评论、选项、站点选项、元数据(文章元数据)、用户(用户元数据)、评论(评论元数据)
@param bool $shouldTranslate
- 默认应翻译值@param string $code
- 语言代码
function my_should_translate_default(bool $shouldTranslate, string $code) { if ($code === 'sv_SE') { return true; } return $shouldTranslate; } add_filter('wp-content-translator/user/should_translate_default', 'my_should_translate_default', 10, 2);
操作
wp-content-translator/before_install_language
在安装语言之前运行。
@param string $code
- 语言代码@param \ContentTranslator\Language $language
- 语言对象
function my_before_install_language($code, $language) { // Do my stuff } add_action('wp-content-translator/before_install_language', 'my_before_install_language', 10, 2);
wp-content-translator/after_install_language
在语言安装后运行。
@param string $code
- 语言代码@param \ContentTranslator\Language $language
- 语言对象
function my_after_install_language($code, $language) { // Do my stuff } add_action('wp-content-translator/after_install_language', 'my_after_install_language', 10, 2);
wp-content-translator/before_uninstall_language
在卸载语言之前运行。
@param string $code
- 语言代码@param \ContentTranslator\Language $language
- 语言对象
function my_before_uninstall_language($code, $language) { // Do my stuff } add_action('wp-content-translator/before_uninstall_language', 'my_before_uninstall_language', 10, 2);
wp-content-translator/after_uninstall_language
在语言卸载后运行。
@param string $code
- 语言代码@param \ContentTranslator\Language $language
- 语言对象
function my_after_uninstall_language($code, $language) { // Do my stuff } add_action('wp-content-translator/after_uninstall_language', 'my_after_uninstall_language', 10, 2);
wp-content-translator/admin_bar/before_add_switcher
在语言切换器添加到管理员栏之前运行。
function my_admin_bar_before() { // Do my stuff } add_action('wp-content-translator/admin_bar/before_add_switcher', 'my_admin_bar_before', 10);
wp-content-translator/admin_bar/after_add_switcher
在语言切换器添加到管理员栏后运行。
function my_admin_bar_after() { // Do my stuff } add_action('wp-content-translator/admin_bar/after_add_switcher', 'my_admin_bar_before', 10);
wp-content-translator/options/before_add_options_page
在“语言”选项页添加到管理员菜单之前运行。
function my_options_page_before() { // Do my stuff } add_action('wp-content-translator/options/before_add_options_page', 'my_options_page_before', 10);
wp-content-translator/options/aftere_add_options_page
在“语言”选项页添加到管理员菜单后运行。
function my_options_page_after() { // Do my stuff } add_action('wp-content-translator/options/after_add_options_page', 'my_options_page_after', 10);
wp-content-translator/{$component}/install
在安装翻译组件时运行。
可用组件:文章、评论、选项、站点选项、元数据(文章元数据)、用户(用户元数据)、评论(评论元数据)
@param string $code
- 语言代码
function my_user_meta_install(string $code) { // Do my stuff } add_action('wp-content-translator/user/install', 'my_user_meta_install', 10);
wp-content-translator/{$component}/uninstall
在卸载元类型翻译组件时运行。
可用组件:文章、评论、选项、站点选项、元数据(文章元数据)、用户(用户元数据)、评论(评论元数据)
@param string $code
- 语言代码
function my_user_meta_install(string $code) { // Do my stuff } add_action('wp-content-translator/user/uninstall', 'my_user_meta_uninstall', 10);