主页/WordPress笔记/博客文章/综合文章/9个最佳WordPress多语言网站翻译插件

9个最佳WordPress多语言网站翻译插件

写 Bug工程师:

在当今全球化时代,多语言网站已经成为许多企业、组织和个人的首选。为了满足不同国家和地区用户的需求,很多网站都提供了多种语言版本。然而,如何实现这一目标呢?这里有一些建议可以帮助您选择合适的WordPress多语言网站翻译插件。

1. WooCommerce Multilingual Plugin

  • 功能:支持 WooCommerce 的多语言功能。
  • 优点:提供强大的购物车管理、订单处理和支付集成能力。
  • 适用场景:适用于有在线商店需求的企业或个人。

2. WPML (Multilingual Plugin)

  • 功能:提供全面的多语言解决方案,包括文章、页面和评论的本地化。
  • 优点:易于配置,界面友好,适合大多数用户。
  • 适用场景:适用于任何需要国际化布局的站点。

3. Polylang Plugin

  • 功能:专注于文章和页面的本地化,可以轻松地添加新的语言并同步内容。
  • 优点:对于那些只需要简单的本地化需求的网站来说非常方便。
  • 适用场景:小型到中型网站。

4. Yoast Multi-Language Plugin

  • 功能:结合了 Yoast SEO 和 WPML 的优势,为网站提供全方位的语言支持。
  • 优点:SEO优化与多语言支持相结合,提高用户体验。
  • 适用场景:对SEO优化有一定要求的网站。

5. TranslatePress

  • 功能:允许作者上传自己的翻译文件,并通过 WordPress 提供的 API 进行管理。
  • 优点:无需额外安装,非常适合开发者自定义需求。
  • 适用场景:开发人员和拥有大量原创内容的博客。

示例代码

假设我们正在创建一个新的WordPress网站,并计划将其翻译成英文和法文。

步骤:

  1. 登录您的WordPress控制面板。
  2. 导航到“插件”->“添加新插件”。
  3. 在搜索框中输入“WPML”,然后点击搜索按钮。
  4. 安装并激活WPML插件。
  5. 配置WPML以启用中文和英文翻译。
  6. 将您的内容翻译成英文并保存。

效果:

  • 现在,您的网站已经支持英文和法文两种语言,访问者可以根据自己的偏好选择不同的语言浏览网站内容。

这些插件的选择取决于您的具体需求和网站类型。WPML是一个不错的选择,因为它具有丰富的功能和友好的用户界面,但价格也相对较高。其他插件如Yoast Multi-Language则更适合那些希望保持简单易用的用户界面的小型企业。

希望这些建议能帮助您成功地为您的WordPress网站添加多语言支持!

黑板IDE教书匠:

9个最佳WordPress多语言网站翻译插件

1. WPML (Multilingual WordPress)

优点:

  • 支持多种语言。
  • 集成了强大的翻译引擎。
  • 可以自定义翻译格式和样式。

示例代码:

function wpml_translation() {
    $languages = get_option('wpml_languages');
    foreach ($languages as $language => $url) {
        add_rewrite_tag($language, '[lang]');
        add_rewrite_tag('_'.$language, '[lang]');
    }
}
add_action('init', 'wpml_translation');

2. Multilanguage WordPress

优点:

  • 允许用户自定义翻译选项。
  • 提供了更灵活的翻译设置。
  • 支持自定义翻译文件夹结构。

示例代码:

function ml_language_setup() {
    $languages = apply_filters('ml_language_setup', array(
        'en' => array(
            'locale' => 'en',
            'domain' => 'example.com',
            'path' => '/languages/en/',
        ),
        'fr' => array(
            'locale' => 'fr',
            'domain' => 'example.com',
            'path' => '/languages/fr/',
        ),
    ));
    register_default_locales($languages);
}
add_action('after_setup_theme', 'ml_language_setup');

3. WPML Advanced

优点:

  • 提供了更多高级功能,如自动翻译、多版本管理等。
  • 可以通过API集成到其他项目中。

示例代码:

function wpml_advanced_translation() {
    // 自定义参数配置
    $params = array(
        'auto' => true,
        'version' => 'v2',
        'force_version' => false,
    );

    // 初始化WPML API
    if (!class_exists('WPLMServices')) {
        require_once ABSPATH . 'wp-admin/includes/class-wplmservices.php';
        WPLMServices::init();
    }

    // 使用WPML API进行自动翻译
    if (isset($_POST['auto']) && $_POST['auto'] == 'yes') {
        $response = WPLMServices::translate(array(
            'locale' => $_POST['locale'],
            'content' => $_POST['content'],
            'force_version' => isset($_POST['force_version']) ? $_POST['force_version'] : false,
        ));
        echo json_encode($response);
    } else {
        // 获取当前URL的翻译信息
        $translation = get_post_meta(get_the_ID(), '_wpml_translation_data', true);
        if (!$translation) {
            return;
        }
        $data = unserialize($translation);

        // 根据需要进行翻译
        if ($data->translated_text != '') {
            echo '<pre>' . print_r($data, true) . '</pre>';
        } else {
            echo 'Translation not found.';
        }
    }
}

add_action('admin_init', 'wpml_advanced_translation');

4. Multilingual Translation for WordPress

优点:

  • 轻量级且易于使用。
  • 不需要安装额外的插件或主题。

示例代码:

function multilingual_translation() {
    $languages = get_bloginfo('languages');
    foreach ($languages as $code => $lang) {
        add_filter('gettext', function($text, $domain, $domain_path, $context) use ($code) {
            if ($code === $domain) {
                return sprintf('%s %s', $text, $context);
            }
            return $text;
        });
    }
}
add_action('init', 'multilingual_translation');

5. Translators Toolkit

优点:

  • 提供了一个简单易用的工具来翻译WordPress的内容。
  • 支持多种语言和文本格式。

示例代码:

function translators_toolkit_translation() {
    global $post;
    $translations = wp_get_post_terms($post->ID, 'post_tag');

    if (count($translations) > 0) {
        $selected_translation = reset($translations);
        $original_text = get_the_content();
        $translated_text = translate_text($original_text, $selected_translation->term_id, $selected_translation->slug);
        the_content('<div class="translated">', '</div>');
    }
}

add_action('get_posts', 'translators_toolkit_translation');

6. TranslatePress

优点:

  • 支持多种翻译源(例如Google Translate)。
  • 提供了一套完整的翻译服务。

示例代码:

function translatepress_translation() {
    $source = 'https://google-translate-api-v2.appspot.com/language/translate/v2key=YOUR_API_KEY&target_lang=en&input=Your text here&format=text';

    $translated_text = wp_remote_get($source)->body;

    echo '<pre>';
    echo '<strong>Original Text:</strong> ' . $original_text . '<br>';
    echo '<strong>Translated Text:</strong> ' . $translated_text . '<br>';
    echo '</pre>';
}

add_action('admin_menu', 'translatepress_translation');

7. WPML Advanced Plugin

优点:

  • 提供了更多的自定义选项和高级功能。
  • 支持自定义翻译模板和布局。

示例代码:

function wpml_advanced_plugin_translation() {
    $language = get_locale();

    if ($language === 'zh-CN') {
        // Chinese translation
        $translation = array(
            'title' => 'Hello, World!',
            'description' => 'This is a test description.',
            'keywords' => 'test, description',
        );
    } elseif ($language === 'es-ES') {
        // Spanish translation
        $translation = array(
            'title' => '¡Hola Mundo!',
            'description' => 'Este es un texto de prueba.',
            'keywords' => 'prueba, texto',
        );
    } else {
        // Default English translation
        $translation = array(
            'title' => 'Hello, World!',
            'description' => 'This is a test description.',
            'keywords' => 'test, description',
        );
    }

    // Save translations to the database
    update_option('wpml_translation', serialize($translation));
}

add_action('admin_init', 'wpml_advanced_plugin_translation');

8. WPML Advanced with Google Cloud Translation

优点:

  • 使用Google Cloud翻译服务进行翻译。
  • 提供了更好的性能和灵活性。

示例代码:

function wpml_advanced_googlecloud_translation() {
    $source = 'https://www.example.com/pag';

    $translation = wp_remote_get($source);
    $response = $translation['body'];

    $headers = $translation['headers'];
    $status = $translation['http_code'];

    $translated_response = wp_remote_retrieve_body($response);

    $response_headers = wp_remote_retrieve_headers($response);

    echo '<pre>';
    echo 'Source URL: ' . $source . '<br>';
    echo 'Response Code: ' . $status . '<br>';
    echo 'Translated Response: ' . $translated_response . '<br>';
    echo 'Response Headers: ' . print_r($response_headers, true) . '<br>';
    echo '</pre>';
}

add_action('admin_menu', 'wpml_advanced_googlecloud_translation');

9. WPML Advanced with Google Cloud Translation and Custom Domain

优点:

  • 使用Google Cloud翻译服务和自定义域名进行翻译。
  • 提供了更高的安全性和定制性。

示例代码:

function wpml_advanced_custom_domain_translation() {
    $source = 'https://www.example.com/pag';

    $translation = wp_remote_get($source);
    $response = $translation['body'];

    $headers = $translation['headers'];
    $status = $translation['http_code'];

    $translated_response = wp_remote_retrieve_body($response);

    $response_headers = wp_remote_retrieve_headers($response);

    // Replace the original URL with your custom domain
    $translated_url = str_replace($source, 'https://' . $this->custom_domain, $translated_response);

    echo '<pre>';
    echo 'Source URL: ' . $source . '<br>';
    echo 'Response Code: ' . $status . '<br>';
    echo 'Translated Response: ' . $translated_response . '<br>';
    echo 'Response Headers: ' . print_r($response_headers, true) . '<br>';
    echo 'Translated URL: ' . $translated_url . '<br>';
    echo '</pre>';
}

add_action('admin_menu', 'wpml_advanced_custom_domain_translation');

这些插件都提供了丰富的功能和选项,可以帮助您轻松地为您的WordPress站点提供多语言支持。根据您的需求选择合适的插件,并按照上述示例代码进行修改即可开始使用。