helsingborg-stad/wp-content-translator

WordPress中的简约内容翻译。

1.0.7 2017-09-13 09:37 UTC

This package is auto-updated.

Last update: 2024-09-21 00:09:14 UTC


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);