| 开发者 |
noricku
wakalab |
|---|---|
| 更新时间 | 2026年6月22日 15:15 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.0 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
/en/about/ and /ja/about/), and is designed to be simple for manual translation workflows on technical blogs and documentation sites.
The free plugin is fully usable on its own and makes no external network calls.
Free features
/en/…, /ja/…), with the prefix as the single source of truth for the active language.[wakalang_switcher] shortcode, and the wakalang_language_switcher() template function — with optional flags rendered as Unicode emoji (no external requests).hreflang alternate links (and an optional x-default) for translated content.wp-sitemap.xml are scoped to the current language.wakalang folder to /wp-content/plugins/, or install it from the Plugins screen.No. WakaLang Free makes no external network calls, does not use a CDN, does not include telemetry, and does not perform license checks.
From the URL prefix (for example /en/). The prefix is authoritative; visitors are never silently redirected away from the language they are viewing.
Yes. The free plugin is complete for manual multilingual sites: register languages, use URL prefixes, link translated posts, output a switcher, and publish hreflang alternates.
Choose "Page header" or "Page footer" under WakaLang → Settings → Language switcher position to show the switcher in the site layout instead of inside post content. You can also add the Language Switcher block, place the [wakalang_switcher] shortcode in content, or call wakalang_language_switcher() from a theme template. You can show country flags (rendered as Unicode emoji, no external requests) with the flags option set to flag or flag_and_name. To turn the switcher off everywhere without removing it from your content, toggle "Show language switcher" off on the Settings screen.
Open the post or page editor and use the WakaLang meta box to set the post's language and link it into a translation group. From there you can see the other-language versions and create a draft translation to fill in. Taxonomy terms are linked the same way from the term editor. WakaLang stores these relationships in its own table and removes them automatically when a post is deleted.
Yes. While a visitor is on /en/, menu links, internal permalinks, the site logo/home link, and block-theme navigation keep the /en/ prefix. WakaLang maintains the prefix only — it does not silently redirect to a different translation — and it leaves external links, anchors, /wp-admin/, REST, and feeds untouched.
WakaLang does not include an automatic importer. You register your languages, then set each post's language and link translations into a group manually. Because WakaLang relies on WordPress's standard slugs and a small custom table, content stays in plain WordPress posts and terms.
/ja/…, /en/…) — the prefix is the source of truth for the current language; rewrite rules flush on activation/deactivation.wakalang_get_current_language(), wakalang_get_supported_languages(), …), with optional root-request browser-language detection and a preferred-language cookie (both off-by-default-friendly and configurable).wp_wakalang_translations table and a post-editor meta box to set a post's language, link it into a translation group, see the other-language versions, and create a draft translation. Rows are removed when a post is permanently deleted; group changes fire the wakalang_translation_group_updated action.merge_groups() folds one translation group into another, refused on a same-language collision.[wakalang_switcher] shortcode, the wakalang_language_switcher() / wakalang_get_language_switcher() template functions, and an editor block. The current language renders as a non-link with aria-current; output passes through wp_kses().flags mode (name / flag / flag_and_name) rendering each language's flag as a Unicode emoji from its locale (no bundled images, no external requests), a global show/hide toggle, and automatic header (wp_body_open) or footer (wp_footer) placement.<link rel="alternate" hreflang="…"> tags in wp_head for a page's language variants, plus an optional x-default. Filterable via wakalang_hreflang_entries.post_link / page_link / post_type_link / term_link, nav-menu item URLs, home_url() output, and block-theme/FSE navigation links keep the current language's URL prefix. External links, anchors, mailto:/tel:, /wp-admin/, REST and feeds are left untouched.wp-sitemap.xml (split per language), are filtered to the current language via shared posts_clauses / terms_clauses SQL with cache invalidation.option_blogname / option_blogdescription on the front end without going through gettext).determine_locale.gfmr_language_switcher_enabled hook, avoiding a duplicate switcher.wakalang_loaded action and the add-on registry) plus free-edition licensing stubs and a feature gate..pot + Japanese .po/.mo and block-editor JS translations).