WordPress & Taal: verschil tussen versies
(81 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 1: | Regel 1: | ||
− | + | ''Dit artikel is het uitgangspunt voor alles rondom ''taal & WordPress''. Dit is het voormalige artikel ''Meertaligheid (WordPress)''.'' | |
− | + | == Inleiding == | |
− | |||
− | |||
− | |||
− | + | In den beginne is een WordPress-site een volledig Engelse aangelegenheid. Daar kan echter al snel verandering in komen: | |
− | * | + | * Als je de '''site language''' aanpast, bv. omdat het bv. een Franse site betreft |
− | * | + | * Als je de '''beheertaal''' aanpast, omdat een Franse site leuk en aardig is, maar je als beheerder het liefst in het Engels werkt |
− | + | * Als het een '''meertalige''' site betreft. | |
− | * | + | |
− | * | + | ''' Updates via de CLI - Niet via de interface ''' |
− | * | + | |
+ | Let op: De WordPress-interface biedt voortdurend aan om vertalingen (en andere updates) binnen te halen, maar dat werkt doorgaans niet voor de sites die ik host, vanwege de manier waarop ik rechten heb ingericht - Gebruik hiervoor de WP-CLI. | ||
+ | |||
+ | == Site language == | ||
+ | |||
+ | [[file:20210311-0904.png|thumb|Site met Frans als ''site language''. De beheertaal is Engels]] | ||
+ | |||
+ | De ''site language'' is de standaardtaal waarin een site communiceert. Op enig moment, is er altijd maar één standaardtaal: | ||
+ | |||
+ | * Als je WordPress download en installeert vanaf http://wordpress.org, is Engels de ''site language'' | ||
+ | * Je kunt WordPress ook downloaden in een specifieke taal. Dan krijg je de <code>.mo</code>-bestanden van die taal meegelevert (zie verderop) | ||
+ | * Tot WordPress 4.0, moest je de site language instellen via het WordPress-configuratie-bestand. Daar schenen ook plugins voor te bestaan | ||
+ | * Vanaf WordPress 4.0, kun je de taal specificeren gedurende installatie en via de gebruikersinterface | ||
+ | * Ook via de CLI kun je de taal specificeren | ||
+ | |||
+ | === Waarom dit relevant is === | ||
+ | |||
+ | De ''site language'' is de taal waarin de site communiceert met bezoekers. Meestal gebeurt dit slechts sporadisch, maar is desalniettemin niet te negeren. Voorbeelden: | ||
− | + | * Inlogscherm (https://example.com/wp-admin) - Zien gebruikers doorgaans niet | |
+ | * Foutmeldingen, bv. bij het onvolledig invullen van een webformulier | ||
− | + | {| | |
+ | |[[file:20201017-2205.png|thumb|Ter illustratie dat de ''Site language'' relevant is: Een webformulier is verkeerd ingevuld. De melding ''Une erreur... bas.'' en ''Ce champ est nécessaire'' zijn allebei Franse standaardteksten, omdat Frans de ''Site language'' is]] | ||
+ | |} | ||
− | + | === Site language aanpassen via interface === | |
− | + | Vanaf WordPress 4.0 kun je de site language instellen via ''Settings » General''. Daarvoor schijn je twee dingen te moeten doen: | |
− | WordPress | ||
− | |||
− | |||
− | |||
− | |||
− | + | * '''Force direct download:''' Via het configuratie-bestand de downloadmethode forceren naar ''direct download'' | |
− | + | * '''Map-permissies aanpassen:''' Zie aparte artikelen op deze wiki hierover: | |
+ | ** [[Mappen, bestanden & rechten - 2019 (WordPress)]] | ||
+ | ** [[Mappen, bestanden & rechten - 2020 (WordPress, 2)]] | ||
+ | ** [[Mappen, bestanden & rechten - 2020 (WordPress, 3)]]. | ||
− | + | {| | |
+ | |[[file:20180414-2351.png|thumb|''Site language'' vind je onder ''Settings » General'']] | ||
+ | |[[file:20180415-1308.png|thumb|Eigen aanpassing ''wp-config.php'' om ''direct download'' te forceren: <code>define('FS_METHOD','direct');</code>]] | ||
+ | |} | ||
− | WordPress | + | In maart 2021 had ik hier geen succes mee. Waarschijnlijk omdat ik rechten zó heb ingesteld, dat WordPress niet zelf zulke wijzigingen kan aanbrengen. Dat kan wél via de CLI - Zie hieronder. |
− | |||
− | |||
− | + | === Site language aanpassen via WP-CLI === | |
− | |||
− | |||
− | |||
− | |||
− | + | Voorbeeld maar 2021: Omfietsen van een site van NL naar FR (Frans zoals ze in Frankrijk spreken, om precies te zijn): | |
− | |||
− | + | <pre> | |
+ | wp language core install fr_FR | ||
+ | wp language core activate fr_FR | ||
+ | wp language core update | ||
</pre> | </pre> | ||
+ | |||
+ | === Core update van een site met een andere site language === | ||
+ | |||
+ | In dit voorbeeld komen een aantal dingen bij elkaar: | ||
{| | {| | ||
− | |[[file: | + | |[[file:20210312-0935.png|thumb| |
− | + | <ul> | |
− | + | <li>Dit is van oorsprong een site met Nederlands als ''site language'' | |
+ | <li>Deze site is gekloond en daarna is Frans als ''site language'' ingesteld | ||
+ | <li>Er is nu een ''core update'' beschikbaar. Die kan ik direct inclusief Franse vertalingen binnenhengelen - Handig! | ||
+ | </ul> | ||
+ | ]] | ||
|} | |} | ||
+ | |||
+ | == Beheertaal == | ||
+ | |||
+ | * Als je een account hebt waarmee je kunt inloggen in de ''backend'' van een WordPress-site, kun je bepalen in welke taal je de backend wilt hebben. Dit noem ik de ''beheertaal'', omdat dit voornamelijk relevant is voor beheerders van sites. Ik maak hier vaak gebruik van, omdat ik beheer bij voorkeur in het Engels doe | ||
+ | * Er was een tijd dat dit alleen mogelijk was middels taal-plugins. Dat is veranderd (WordPress 4.0?). Je hebt dus geen plugins meer nodig om met aparte beheertalen te kunnen werken | ||
+ | * Als ik bv. een Engelstalig beheeraccount heb, en ik bekijk de site als bezoeker, dan krijg ik de site in de ''site language'' (of wat dan ook actief is al site-taal). | ||
+ | |||
+ | ''' Voorbeeld ''' | ||
+ | |||
+ | Dit voorbeeld uit maart 2021 betreft een site waarbij geldt: | ||
+ | |||
+ | * '''Site language''' is Frans - Het is dus gewoon een Franse site (het is geen meertalige site) | ||
+ | * '''Beheertaal''' is Engels. | ||
+ | |||
{| | {| | ||
− | |[[file: | + | |[[file:20210312-0923.png|thumb|''Backend'' is gewoon Engelstalig]] |
− | |[[file: | + | |[[file:20210312-0924.png|thumb|''Frontend'' is Franstalig. Zo snel ik bv. op ''Personnaliser'' klik, beland ik in de backend en is alles weer Engels. Het is wel zo logisch dat nu alles Franstalig is: Dat is immers de site language en anders zou je op een rare manier Frans en Engels door elkaar krijgen, lijkt me]] |
+ | |[[file:20210312-1015.png|thumb|De WP-CLI lijkt standaard de ''site language'' te volgen, maar vertoond desalniettemin een hoop Engels in aanvulling op eventuele PHP-waarschuwingen of -foutmeldingen, die uiteraard Engelstalig zijn]] | ||
+ | |} | ||
+ | |||
+ | == Vertalingen: Hoe het werkt == | ||
+ | |||
+ | WordPress is een CMS dat overweg kan met andere talen dan alleen Engels. Hetzij als standaardtaal, beheertaal, of als een meervoudige taal. In dit hoofdstuk een blik onder de moterkap. Dit is slechts een beginnetje (maart 2021): | ||
+ | |||
+ | === Vertaalfuncties === | ||
+ | |||
+ | Elke string is omhuld door een ''vertaalfunctie'', waarbij de betreffende string het argument is. Dit is de essentie van hoe vertalingen werken. | ||
+ | |||
+ | Ter illustratie: Dit is bestand <code>404.php</code> uit het standaard-theme ''Twentytwentyone'': | ||
+ | |||
+ | <pre> | ||
+ | <?php | ||
+ | /** | ||
+ | * The template for displaying 404 pages (not found) | ||
+ | * | ||
+ | * @link https://codex.wordpress.org/Creating_an_Error_404_Page | ||
+ | * | ||
+ | * @package WordPress | ||
+ | * @subpackage Twenty_Twenty_One | ||
+ | * @since Twenty Twenty-One 1.0 | ||
+ | */ | ||
+ | |||
+ | get_header(); | ||
+ | ?> | ||
+ | <header class="page-header alignwide"> | ||
+ | <h1 class="page-title"><?php esc_html_e( 'Nothing here', 'twentytwentyone' ); ?></h1> | ||
+ | </header><!-- .page-header --> | ||
+ | |||
+ | <div class="error-404 not-found default-max-width"> | ||
+ | <div class="page-content"> | ||
+ | <p><?php esc_html_e( 'It looks like nothing was found at this location. Maybe try a search?', 'twentytwentyone' ); ?></p> | ||
+ | <?php get_search_form(); ?> | ||
+ | </div><!-- .page-content --> | ||
+ | </div><!-- .error-404 --> | ||
+ | <?php | ||
+ | get_footer(); | ||
+ | </pre> | ||
+ | |||
+ | Je kunt zien dat de string hier steeds omgeven worden door een functie <code>esc_html_e()</code>. Details zijn me onbekend, maar het lijkt me dat hier blijkbaar om HTML-opgemaakte strings gaat. | ||
+ | |||
+ | Dit is een voorbeeld uit bestand <code>404.php</code> uit een maatwerk-theme: | ||
+ | |||
+ | <pre> | ||
+ | <h2 class="display-none"><?php _e( 'Oops! That page can’t be found. (404 error)', 'banyanmaster' ); ?></h2> | ||
+ | </pre> | ||
+ | |||
+ | Deze maakt gebruik van de vertaalfunctie <code>_e</code> - Dat zal wel de standaard-vertaalfunctie zijn, waarbij bv. <code>esc_html_e</code> een vertaalfunctie is voor een specifieke situatie. | ||
+ | |||
+ | === Vertalingen & objecten === | ||
+ | |||
+ | Vertalingen gaan per type object: | ||
+ | |||
+ | * Core | ||
+ | * Plugins | ||
+ | * Thema's | ||
+ | * Nog meer? | ||
+ | |||
+ | === Vertaalbestanden === | ||
+ | |||
+ | Vertalingen staan los van de bijbehorende objecten waarop ze van toepassing zijn. Locaties waar ik vertaalbestanden zoal tegenkom: | ||
+ | |||
+ | * <code>wp-content/languages</code> | ||
+ | * <code>wp-content/languages/plugins</code> | ||
+ | * <code>wp-content/languages/themes</code> | ||
+ | * <code>wp-content/themes/<theme>/languages</code> (alleen voor een maatwerk-theme dat ik gebruik). | ||
+ | |||
+ | {| | ||
+ | |[[file:20210312-1035.png|thumb|Voorbeeld van map <code>wp-content/languages</code>. Dit betreft een van oorsprong Nederlandstalige site, die onlangs naar Frans was omgezet. Al die Franstalige .json-bestanden, zijn in één keer binnengehengeld. Het zijn dus niet verschillende historische versies van een bepaald bestand]] | ||
|} | |} | ||
− | == | + | === .po-bestanden === |
+ | |||
+ | Bestanden met diverse extenties spelen een rol, te beginnen met <code>.po</code>-bestanden: ''Portable Object''. | ||
+ | |||
+ | Voorbeeld: Eerst paar regels van bestand <code>wp-content/languages/admin-nl_NL.-po</code>: | ||
+ | |||
+ | <pre> | ||
+ | # Translation of WordPress - 5.7.x - Development - Administration in Dutch | ||
+ | # This file is distributed under the same license as the WordPress - 5.7.x - Development - Administration package. | ||
+ | msgid "" | ||
+ | msgstr "" | ||
+ | "PO-Revision-Date: 2021-03-11 19:27:48+0000\n" | ||
+ | "MIME-Version: 1.0\n" | ||
+ | "Content-Type: text/plain; charset=UTF-8\n" | ||
+ | "Content-Transfer-Encoding: 8bit\n" | ||
+ | "Plural-Forms: nplurals=2; plural=n != 1;\n" | ||
+ | "X-Generator: GlotPress/3.0.0-alpha.2\n" | ||
+ | "Language: nl\n" | ||
+ | "Project-Id-Version: WordPress - 5.7.x - Development - Administration\n" | ||
+ | |||
+ | #. translators: Default start of the week. 0 = Sunday, 1 = Monday. | ||
+ | #: wp-admin/includes/schema.php:409 | ||
+ | msgctxt "start of week" | ||
+ | msgid "1" | ||
+ | msgstr "1" | ||
+ | |||
+ | #: wp-admin/includes/schema.php:393 | ||
+ | msgctxt "default GMT offset or timezone string" | ||
+ | msgid "0" | ||
+ | msgstr "Europa/Amsterdam" | ||
+ | |||
+ | #: wp-admin/includes/media.php:1732 wp-admin/upgrade.php:74 | ||
+ | #: wp-admin/upgrade.php:154 | ||
+ | msgid "Continue" | ||
+ | msgstr "Doorgaan" | ||
+ | </pre> | ||
+ | |||
+ | Merk op dat <code>msgid</code> vermoedelijk een voorbeeld is van een argument van de <code>_e</code>-functies die we eerder tegenkwamen. | ||
+ | |||
+ | === .mo-bestanden === | ||
+ | |||
+ | Een <code>.mo</code>-bestand betreft een ''Machine Object''-bestand: Een gecompileerd .po-bestand. | ||
+ | |||
+ | Voorbeeld: Eerste paar regels van <code>wp-content/languages/admin-nl_NL.-co</code> - Yep, hex: | ||
+ | |||
+ | <pre> | ||
+ | de12 0495 0000 0000 b90c 0000 1c00 0000 | ||
+ | e465 0000 fd10 0000 accb 0000 0000 0000 | ||
+ | a00f 0100 0f00 0000 a10f 0100 1900 0000 | ||
+ | b10f 0100 1100 0000 cb0f 0100 0500 0000 | ||
+ | dd0f 0100 1d00 0000 e30f 0100 1600 0000 | ||
+ | 0110 0100 1c00 0000 1810 0100 2600 0000 | ||
+ | 3510 0100 1b00 0000 5c10 0100 3900 0000 | ||
+ | 7810 0100 0d00 0000 b210 0100 4400 0000 | ||
+ | c010 0100 1f00 0000 0511 0100 4200 0000 | ||
+ | 2511 0100 5400 0000 6811 0100 5c00 0000 | ||
+ | bd11 0100 0900 0000 1a12 0100 4200 0000 | ||
+ | </pre> | ||
+ | |||
+ | === Overig === | ||
+ | |||
+ | Komt nog: .pot, poedit + procedure: https://wordpress.stackexchange.com/questions/57219/translate-a-plugin-using-po-mo-files/57243 | ||
+ | |||
+ | == Best practices meertalige site - Voorjaar 2018 == | ||
+ | |||
+ | Dit heeft betrekking op een Nederlandstalige site, maar is waarschijnlijk net zo relevant voor meertalige sites (bv. Nederlands, Duits & Engels): | ||
− | * | + | * Forceer ''direct download'' |
− | * | + | * Zorg dat de mappen ''wp-content'' en ''wp-content/languages'' de juiste rechten hebben, zodat WordPress taalbestanden kan downloaden en mappen kan aanmaken |
− | * | + | * Installeer Polylang - Dit is voor mij de standaardplugin voor meertaligheid. Ook nodig als je de taal in maar één ander taal wilt hebben, toch? |
− | * | + | * Configureer ''site language'' naar de default-taal van de site |
− | * | + | * Configureer beheertaal via Polylang - Hier heb je geen aparte plugin voor nodig :) |
+ | * Configureer gebruikers-talen via Polylang, ook als het om maar één taal gaat (anders dan Engels) | ||
+ | * Verifiëer via ''Dashboard » Updates'' dat de vertalingen up-to-date zijn, en dat deze anders automatisch binnengehengeld worden. | ||
− | ''' | + | {| |
+ | |[[file:20180425-1339.png|thumb|Na installatie Polylang kun je je eigen gebruikerstaal configureren. Precies wat ik zoek om Engels als ''beheertaal'' te configureren, en geen aparte plugin nodig!]] | ||
+ | |[[file:20180425-1404.png|thumb|Eind goed - al goed]] | ||
+ | |} | ||
− | + | == Automatische vertaal-updates == | |
− | + | Vertaalupdates van alle soorten objecten (plugins? WordPress Core? Thema's?) kunnen automatisch binnengehengeld worden. Zie [[Update WordPress-installatie]] voor details. | |
− | |||
{| | {| | ||
− | |[[file: | + | |[[file:20180415-1250.png|thumb|Nieuwe vertalingen beschikbaar? Dat zie je via '''Dashboard''']] |
+ | |[[file:20180415-1251.png|thumb|Ook als is map ''wp-content'' schrijfbaar voor derden, WordPress blijft om FTP-servergegevens vragen. Is dat trouwens niet raar? De site is toch alleen FTP-client, en niet een FTP-server?]] | ||
|[[file:20180415-1308.png|thumb|Eigen aanpassing ''wp-config.php'' om ''direct download'' te forceren]] | |[[file:20180415-1308.png|thumb|Eigen aanpassing ''wp-config.php'' om ''direct download'' te forceren]] | ||
+ | |} | ||
+ | {| | ||
+ | |[[file:20180415-1309.png|thumb|Tjakka: Vertalingen zijn bijgewerkt]] | ||
+ | |[[file:20180415-1310.png|thumb|Map ''wp-content/languages/plugins'' is verreikt met hello-dolly- & woocommerce-bestanden]] | ||
|} | |} | ||
Regel 141: | Regel 322: | ||
|[[file:20180415-1148.png|thumb|Ook al is het nl_NL.mo-bestand kleiner, de vertaling is wél completer. Misschien omdat deze is verspreid over meerdere bestanden]] | |[[file:20180415-1148.png|thumb|Ook al is het nl_NL.mo-bestand kleiner, de vertaling is wél completer. Misschien omdat deze is verspreid over meerdere bestanden]] | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Plugin-vertalingen - Casus WooCommerce (april 2018) == | == Plugin-vertalingen - Casus WooCommerce (april 2018) == | ||
Regel 173: | Regel 344: | ||
== Zelf vertalingen beheren == | == Zelf vertalingen beheren == | ||
− | * Loco Translate → Werkt perfect, vooral als het om beperkte hoeveelheid strings gaat. De plugin genereert zelf .mo- & .po-bestanden - Superhandig | + | * [[Loco Translate (WordPress) | Loco Translate]] → Werkt perfect, vooral als het om beperkte hoeveelheid strings gaat. De plugin genereert zelf .mo- & .po-bestanden - Superhandig |
* Poedit - Vermoedelijk prettiger voor grotere hoeveelheden strings. | * Poedit - Vermoedelijk prettiger voor grotere hoeveelheden strings. | ||
Regel 256: | Regel 427: | ||
* WPGlobus | * WPGlobus | ||
* qTranslate-X - Lijkt te conflicteren met Hoshi. | * qTranslate-X - Lijkt te conflicteren met Hoshi. | ||
+ | |||
+ | == Casus: Een NL-term aanpassen (lente 2018) == | ||
+ | |||
+ | === Het probleem === | ||
+ | |||
+ | {| | ||
+ | |[[file:20180604-1159.png|thumb|Deze tekst wil ik aanpassen. Ik weet niet goed waar-ie vandaan komt: WooCommerce? Easy Booking? Eigen snippet?]] | ||
+ | |[[file:20180604-1210.png|thumb|En dit is 'm met een theme dat de tekst niet naar ''small caps'' transformeert]] | ||
+ | |} | ||
+ | |||
+ | === Aanvullende gegevens === | ||
+ | |||
+ | * Ik kan de string niet localiseren in een db-dump met zoiets als <code>grep -rn db-dump.sql -e "In" | grep "winkelmand" > txt.txt</code> | ||
+ | * Ik kan de string ook niet localiseren in de installatie met zoiets als <code>grep -rn . -e "winkelwagen"</code> vanaf de root van de installatie. | ||
+ | * Deze (niet-werkende) code suggereert dat het toch echt om WooCommerce-code gaat: | ||
+ | |||
+ | <pre> | ||
+ | // Change the Add to Cart button into View Product button | ||
+ | // ================================================================================================================= | ||
+ | |||
+ | function add_product_link( $link ) | ||
+ | { | ||
+ | global $product; | ||
+ | echo '<form action="' . esc_url( $product->get_permalink( $product->id ) ) . '" method="get"> | ||
+ | <button type="submit" class="button product_type_simple">' . __('View Product', 'woocommerce') . '</button> | ||
+ | </form>'; | ||
+ | } | ||
+ | |||
+ | /*STEP 1 - REMOVE ADD TO CART BUTTON ON PRODUCT ARCHIVE (SHOP) */ | ||
+ | |||
+ | function remove_loop_button() | ||
+ | { | ||
+ | remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); | ||
+ | } | ||
+ | |||
+ | // add_action('init','remove_loop_button'); | ||
+ | add_filter( 'woocommerce_loop_add_to_cart_link', 'add_product_link' ); | ||
+ | </pre> | ||
+ | |||
+ | == Casus: String toevoegen (lente 2018) == | ||
+ | |||
+ | === Het probleem === | ||
+ | |||
+ | {| | ||
+ | |[[file:20180604-1238.png|thumb|Deze NL-site schakelt soms naar Engels]] | ||
+ | |} | ||
+ | |||
+ | === Aanvullende gegevens === | ||
+ | |||
+ | De betreffende code in de browser: | ||
+ | |||
+ | <pre> | ||
+ | <div class="mkd-cart-proceed-update"> | ||
+ | |||
+ | <a href="http://example.com/checkout/" | ||
+ | target="_self" | ||
+ | class="mkd-btn mkd-btn-medium mkd-btn-solid checkout-button alt wc-forward mkd-btn-hover-outline" > | ||
+ | <span class="mkd-btn-text"> | ||
+ | |||
+ | Proceed to Checkout | ||
+ | |||
+ | </span> | ||
+ | </a> | ||
+ | |||
+ | <input | ||
+ | type="submit" | ||
+ | name="update_cart" | ||
+ | value="Update Cart" | ||
+ | class="mkd-btn mkd-btn-medium mkd-btn-gradient mkd-type2-gradient-left-to-right-2x mkd-btn-hover-outline" | ||
+ | /> | ||
+ | </pre> | ||
+ | |||
+ | De string ''Proceed to checkout'' komt ene paar keer voor in de installatie: | ||
+ | |||
+ | <pre> | ||
+ | > grep -rn . -e "Proceed to checkout" | ||
+ | |||
+ | ./wp-content/plugins/woocommerce/i18n/languages/woocommerce.pot:24771:msgid "Proceed to checkout" | ||
+ | |||
+ | ./wp-content/plugins/woocommerce/templates/cart/proceed-to-checkout-button.php:3: * Proceed to checkout button | ||
+ | ./wp-content/plugins/woocommerce/templates/cart/proceed-to-checkout-button.php:27: <?php esc_html_e( 'Proceed to checkout', 'woocommerce' ); ?> | ||
+ | |||
+ | ./wp-content/languages/plugins/woocommerce-nl_NL.po:12197:msgid "Proceed to checkout" | ||
+ | |||
+ | Binary file ./wp-content/languages/plugins/woocommerce-nl_NL.mo matches | ||
+ | Binary file ./wp-content/languages/plugins/wp-plugins-woocommerce-stable-nl.mo matches | ||
+ | </pre> | ||
+ | |||
+ | Bestand ''wp-content/languages/plugins/woocommerce-nl_NL.po'': | ||
+ | |||
+ | <pre> | ||
+ | #: templates/cart/proceed-to-checkout-button.php:27 | ||
+ | msgid "Proceed to checkout" | ||
+ | msgstr "Doorgaan naar afrekenen" | ||
+ | </pre> | ||
+ | |||
+ | === Mogelijke oorzaken === | ||
+ | |||
+ | * Theme-sjablonen nemen president en die misten vertalingen [https://wpml.org/forums/topic/some-string-translations-woocommerce-cart-do-not-work-after-update/] → Bijwerken sjablonen helpt voor ''winkelmand bijwerken'', maar niet voor ''proceed to checkout'' | ||
+ | * Niet-NL admin [https://wpml.org/forums/topic/some-string-translations-woocommerce-cart-do-not-work-after-update/] → Lijkt me sterk, want individueel account. Geen system-wide instellingen | ||
+ | * Ik ben beheerder op een EN-computer → Als anonieme bezoeker bekijken → Zelfde probleem | ||
+ | |||
+ | == Casus: Standaardtaal spring terug naar NL (juli 2021) == | ||
+ | |||
+ | Op een drietal Franstalige sites heb ik het probleem dat ca. om de paar weken, de standaardtaal van Frans terugspringt naar Nederlands. Deze sites zijn van oorsprong klonen van een Nederlandstalige site. Toch vind ik het gek dat ze juist terugspringen naar Nederlands en niet naar Engels, want dat is pas écht de standaardtaal van WordPress-sites. | ||
+ | |||
+ | === Mogelijke oorzaken === | ||
+ | |||
+ | ''' Additionele taal-instelling? ''' | ||
+ | |||
+ | * Misschien dat een taal-plugin een additionele taalinstelling kent? | ||
+ | * Misschiend dat een andere plugin (WooCommerce?) of theme een additionele taalinstelling kent? | ||
+ | * <code>wp-config.php</code> | ||
+ | |||
+ | ''' Polylang tijdelijk geïnstalleerd? ''' | ||
+ | |||
+ | * Plugins voor meertaligheid lijken dit wel eens te veroorzaken. Vermoedelijk heb ik ''Polylang'' onlangs geïnstalleerd om iets te doen met de Franse vertalingen. Daarna heb ik Polylang weer verwijderd, maar misschien dat dat de bron is van deze taalwissels | ||
+ | |||
+ | === Acties === | ||
+ | |||
+ | * Door de lijst met plugins gegaan of er een taal-gerelateerde plugin bijzit: Nee | ||
+ | * Door de lijst met plugins gegaan of er een andere plugin bijzit die misschien de taal zou kunnen aanpassen: WooCommerce?, Yoast? | ||
+ | * WooCommerce » Status: Taal is fr_FR zoals verwacht. Verder geen gekke dingen | ||
+ | * <code>wp-config.php</code>: Geen taalinstelling gevonden | ||
+ | * Yoast » Configuration wizard doorlopen: Geen taalgerelateerde instellingen | ||
+ | |||
+ | === Bronnen === | ||
+ | |||
+ | * https://www.google.com/search?q=wordpress+default+language+resets+by+itself+-wpml | ||
+ | |||
+ | == Zie ook == | ||
+ | |||
+ | * [[Update WordPress-installatie]] | ||
== Bronnen == | == Bronnen == | ||
Regel 268: | Regel 572: | ||
* http://www.wcommerce.nl/woocommerce-in-het-nederlands-instellen/ - Behulpzaam tav. plugins & vertalingen | * http://www.wcommerce.nl/woocommerce-in-het-nederlands-instellen/ - Behulpzaam tav. plugins & vertalingen | ||
* https://stackoverflow.com/questions/640409/can-i-install-update-wordpress-plugins-without-providing-ftp-access - Heel goed! | * https://stackoverflow.com/questions/640409/can-i-install-update-wordpress-plugins-without-providing-ftp-access - Heel goed! | ||
+ | * https://wordpress.stackexchange.com/questions/57219/translate-a-plugin-using-po-mo-files/57243 - Goede uitleg omtrent .po, .mo, .pot, .poedit + procedure |
Huidige versie van 20 jul 2021 om 10:48
Dit artikel is het uitgangspunt voor alles rondom taal & WordPress. Dit is het voormalige artikel Meertaligheid (WordPress).
Inleiding
In den beginne is een WordPress-site een volledig Engelse aangelegenheid. Daar kan echter al snel verandering in komen:
- Als je de site language aanpast, bv. omdat het bv. een Franse site betreft
- Als je de beheertaal aanpast, omdat een Franse site leuk en aardig is, maar je als beheerder het liefst in het Engels werkt
- Als het een meertalige site betreft.
Updates via de CLI - Niet via de interface
Let op: De WordPress-interface biedt voortdurend aan om vertalingen (en andere updates) binnen te halen, maar dat werkt doorgaans niet voor de sites die ik host, vanwege de manier waarop ik rechten heb ingericht - Gebruik hiervoor de WP-CLI.
Site language
De site language is de standaardtaal waarin een site communiceert. Op enig moment, is er altijd maar één standaardtaal:
- Als je WordPress download en installeert vanaf http://wordpress.org, is Engels de site language
- Je kunt WordPress ook downloaden in een specifieke taal. Dan krijg je de
.mo
-bestanden van die taal meegelevert (zie verderop) - Tot WordPress 4.0, moest je de site language instellen via het WordPress-configuratie-bestand. Daar schenen ook plugins voor te bestaan
- Vanaf WordPress 4.0, kun je de taal specificeren gedurende installatie en via de gebruikersinterface
- Ook via de CLI kun je de taal specificeren
Waarom dit relevant is
De site language is de taal waarin de site communiceert met bezoekers. Meestal gebeurt dit slechts sporadisch, maar is desalniettemin niet te negeren. Voorbeelden:
- Inlogscherm (https://example.com/wp-admin) - Zien gebruikers doorgaans niet
- Foutmeldingen, bv. bij het onvolledig invullen van een webformulier
Site language aanpassen via interface
Vanaf WordPress 4.0 kun je de site language instellen via Settings » General. Daarvoor schijn je twee dingen te moeten doen:
- Force direct download: Via het configuratie-bestand de downloadmethode forceren naar direct download
- Map-permissies aanpassen: Zie aparte artikelen op deze wiki hierover:
In maart 2021 had ik hier geen succes mee. Waarschijnlijk omdat ik rechten zó heb ingesteld, dat WordPress niet zelf zulke wijzigingen kan aanbrengen. Dat kan wél via de CLI - Zie hieronder.
Site language aanpassen via WP-CLI
Voorbeeld maar 2021: Omfietsen van een site van NL naar FR (Frans zoals ze in Frankrijk spreken, om precies te zijn):
wp language core install fr_FR wp language core activate fr_FR wp language core update
Core update van een site met een andere site language
In dit voorbeeld komen een aantal dingen bij elkaar:
Beheertaal
- Als je een account hebt waarmee je kunt inloggen in de backend van een WordPress-site, kun je bepalen in welke taal je de backend wilt hebben. Dit noem ik de beheertaal, omdat dit voornamelijk relevant is voor beheerders van sites. Ik maak hier vaak gebruik van, omdat ik beheer bij voorkeur in het Engels doe
- Er was een tijd dat dit alleen mogelijk was middels taal-plugins. Dat is veranderd (WordPress 4.0?). Je hebt dus geen plugins meer nodig om met aparte beheertalen te kunnen werken
- Als ik bv. een Engelstalig beheeraccount heb, en ik bekijk de site als bezoeker, dan krijg ik de site in de site language (of wat dan ook actief is al site-taal).
Voorbeeld
Dit voorbeeld uit maart 2021 betreft een site waarbij geldt:
- Site language is Frans - Het is dus gewoon een Franse site (het is geen meertalige site)
- Beheertaal is Engels.
Vertalingen: Hoe het werkt
WordPress is een CMS dat overweg kan met andere talen dan alleen Engels. Hetzij als standaardtaal, beheertaal, of als een meervoudige taal. In dit hoofdstuk een blik onder de moterkap. Dit is slechts een beginnetje (maart 2021):
Vertaalfuncties
Elke string is omhuld door een vertaalfunctie, waarbij de betreffende string het argument is. Dit is de essentie van hoe vertalingen werken.
Ter illustratie: Dit is bestand 404.php
uit het standaard-theme Twentytwentyone:
<?php /** * The template for displaying 404 pages (not found) * * @link https://codex.wordpress.org/Creating_an_Error_404_Page * * @package WordPress * @subpackage Twenty_Twenty_One * @since Twenty Twenty-One 1.0 */ get_header(); ?> <header class="page-header alignwide"> <h1 class="page-title"><?php esc_html_e( 'Nothing here', 'twentytwentyone' ); ?></h1> </header><!-- .page-header --> <div class="error-404 not-found default-max-width"> <div class="page-content"> <p><?php esc_html_e( 'It looks like nothing was found at this location. Maybe try a search?', 'twentytwentyone' ); ?></p> <?php get_search_form(); ?> </div><!-- .page-content --> </div><!-- .error-404 --> <?php get_footer();
Je kunt zien dat de string hier steeds omgeven worden door een functie esc_html_e()
. Details zijn me onbekend, maar het lijkt me dat hier blijkbaar om HTML-opgemaakte strings gaat.
Dit is een voorbeeld uit bestand 404.php
uit een maatwerk-theme:
<h2 class="display-none"><?php _e( 'Oops! That page can’t be found. (404 error)', 'banyanmaster' ); ?></h2>
Deze maakt gebruik van de vertaalfunctie _e
- Dat zal wel de standaard-vertaalfunctie zijn, waarbij bv. esc_html_e
een vertaalfunctie is voor een specifieke situatie.
Vertalingen & objecten
Vertalingen gaan per type object:
- Core
- Plugins
- Thema's
- Nog meer?
Vertaalbestanden
Vertalingen staan los van de bijbehorende objecten waarop ze van toepassing zijn. Locaties waar ik vertaalbestanden zoal tegenkom:
wp-content/languages
wp-content/languages/plugins
wp-content/languages/themes
wp-content/themes/<theme>/languages
(alleen voor een maatwerk-theme dat ik gebruik).
.po-bestanden
Bestanden met diverse extenties spelen een rol, te beginnen met .po
-bestanden: Portable Object.
Voorbeeld: Eerst paar regels van bestand wp-content/languages/admin-nl_NL.-po
:
# Translation of WordPress - 5.7.x - Development - Administration in Dutch # This file is distributed under the same license as the WordPress - 5.7.x - Development - Administration package. msgid "" msgstr "" "PO-Revision-Date: 2021-03-11 19:27:48+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: nl\n" "Project-Id-Version: WordPress - 5.7.x - Development - Administration\n" #. translators: Default start of the week. 0 = Sunday, 1 = Monday. #: wp-admin/includes/schema.php:409 msgctxt "start of week" msgid "1" msgstr "1" #: wp-admin/includes/schema.php:393 msgctxt "default GMT offset or timezone string" msgid "0" msgstr "Europa/Amsterdam" #: wp-admin/includes/media.php:1732 wp-admin/upgrade.php:74 #: wp-admin/upgrade.php:154 msgid "Continue" msgstr "Doorgaan"
Merk op dat msgid
vermoedelijk een voorbeeld is van een argument van de _e
-functies die we eerder tegenkwamen.
.mo-bestanden
Een .mo
-bestand betreft een Machine Object-bestand: Een gecompileerd .po-bestand.
Voorbeeld: Eerste paar regels van wp-content/languages/admin-nl_NL.-co
- Yep, hex:
de12 0495 0000 0000 b90c 0000 1c00 0000 e465 0000 fd10 0000 accb 0000 0000 0000 a00f 0100 0f00 0000 a10f 0100 1900 0000 b10f 0100 1100 0000 cb0f 0100 0500 0000 dd0f 0100 1d00 0000 e30f 0100 1600 0000 0110 0100 1c00 0000 1810 0100 2600 0000 3510 0100 1b00 0000 5c10 0100 3900 0000 7810 0100 0d00 0000 b210 0100 4400 0000 c010 0100 1f00 0000 0511 0100 4200 0000 2511 0100 5400 0000 6811 0100 5c00 0000 bd11 0100 0900 0000 1a12 0100 4200 0000
Overig
Komt nog: .pot, poedit + procedure: https://wordpress.stackexchange.com/questions/57219/translate-a-plugin-using-po-mo-files/57243
Best practices meertalige site - Voorjaar 2018
Dit heeft betrekking op een Nederlandstalige site, maar is waarschijnlijk net zo relevant voor meertalige sites (bv. Nederlands, Duits & Engels):
- Forceer direct download
- Zorg dat de mappen wp-content en wp-content/languages de juiste rechten hebben, zodat WordPress taalbestanden kan downloaden en mappen kan aanmaken
- Installeer Polylang - Dit is voor mij de standaardplugin voor meertaligheid. Ook nodig als je de taal in maar één ander taal wilt hebben, toch?
- Configureer site language naar de default-taal van de site
- Configureer beheertaal via Polylang - Hier heb je geen aparte plugin voor nodig :)
- Configureer gebruikers-talen via Polylang, ook als het om maar één taal gaat (anders dan Engels)
- Verifiëer via Dashboard » Updates dat de vertalingen up-to-date zijn, en dat deze anders automatisch binnengehengeld worden.
Automatische vertaal-updates
Vertaalupdates van alle soorten objecten (plugins? WordPress Core? Thema's?) kunnen automatisch binnengehengeld worden. Zie Update WordPress-installatie voor details.
Site language-bestanden downloaden
Hierboven werden diverse mogelijkheden opgesomd om beheertaal-bestanden te verkrijgen. Waarschijnlijk is dit allemaal achterhaald: Na configureren force download-methode, gaan downloads van taalbestanden vanzelf. Anyhow, hierbij in detail twee van deze methodes.
nl_NL.mo downloaden - WERKT NIET
Deze methode werkt niet: Om een of andere reden is het bestand niet compleet. Deze uitleg hier behouden uit oogpunt van compleetheid:
- Per plugin, theme, of voor WordPress-als-geheel, heb je een zogenaamd mo-bestand nodig, oftewel een Machine Object Messsage Catalog-bestand
- Maak map
wp-content/languages
aan - Download het gezochte mo-bestand vanaf https://i18n.svn.wordpress.org/ naar deze map
- Pas de taal aan onder Settings » General » Site Language
- Let op: Dit verandert inderdaad de beheer-taal, misschien ook wat gebruikers te zien krijgen, maar daar is het niet voor bedoeld: Daarvoor moet je waarschijnlijk met plugins voor meertaligheid aan de slag.
Overzicht Nederlandstalige mappen & bestanden:
Ik denk dat dit WordPress core betreft (NOGMAALS: INCOMPLEET):
- nl-mo-bestanden: https://i18n.svn.wordpress.org/nl/
- nl_BE-mo-bestanden: https://i18n.svn.wordpress.org/nl_BE/ - Helemaal leeg
- nl_NL-mo-bestanden: https://i18n.svn.wordpress.org/nl_NL/ - Helemaal leeg
Bestanden overnemen uit NL-distributie
Dit werkt en is vermoedelijk betrouwbaar. Zie casus april 2018 hieronder.
Casus (april 2018)
- Site geïnstalleerd mbv. script, gewoon in het Engels. Onder Settings kan ik alleen English (United States) selecteren
- Map
wp-content/languages
aangemaakt
Mbv. download nl_NL.mo
- nl-NL.mo gedownload vanaf hier naar map languages
- Scherm Settings ververst. Nu kan ik ook Nederlands kiezen.
- Ik ben verbaasd hoeveel onvertaald blijft
- Als ik de naam van taalbestand
nl_NL.mo
verander in bv.nl_NL_2.mo
(om bv. er een tweede taalbestand naast te zetten), schakelt de site terug naar Engels.
Mbv. Nederlandstalige WordPress-distributie
- Ik kan maar geen nl_NL.mo-bestand downloaden vanaf WordPress. Daarom de complete Nederlandstalige distributie gedownload. Interessant om de mapstructuur onder
languages
te zien - De vertalingen zijn veel beter → Volgende keer weer op deze manier doen.
Plugin-vertalingen - Casus WooCommerce (april 2018)
- De beheertaal is Nederlands. De site is niet meertalig
- WooCommerce geïnstalleerd middels
wp plugin install woocommerce --activate
- Wizard doorlopen - Geen taaloptie en nog steeds in het Engels
- Map voor WooCommerce-vertalingen:
wp-content/languages/woocommerce/
- Zoals verwacht [1]
Uiteindelijke oplossing:
- Zie eerder in dit artikel: Force direct download
- Rechten wp-content aangepast
- Dashboard → Update.
Zelf vertalingen beheren
- Loco Translate → Werkt perfect, vooral als het om beperkte hoeveelheid strings gaat. De plugin genereert zelf .mo- & .po-bestanden - Superhandig
- Poedit - Vermoedelijk prettiger voor grotere hoeveelheden strings.
Plugins meertalige content - Hoe het werkt
Deze Codex-pagina legt de verschillen tussen de verschillende modules uit op een manier die ik lastig vind om te begrijpen. Komt-ie:
Per taal een aparte posting
Sommige modules, waaronder WPML, xili-language, Polylang, Bobo en Sublanguage, hebben voor elke taal een aparte versie van een posting. Dit is vergelijkbaar met hoe Drupal werkt: Elke posting is een eigen object, en die moet je aan elkaar linken.
Nadelen
- Ingrijpend: Overige modules moeten hier nogal rekening mee houden
- Onoverzichtelijk: In Drupal betekende dit een enorme groei van het aantal objecten. Dat werd snel erg onoverzichtelijk. Zeker als pagina's in verschillende talen toch dezelfde naam hadden (bv. Hotels)
- Gepiel: In Drupal was ik eindeloos vertalingen met elkaar aan het verbinden
- Onoverzichtelijk (2): Ik kon in Drupal niet gemakkelijk vertalingen naast elkaar zien. Van vertaling-naar-vertaling kostte al twee twee of drie klikken
- Er kan veel kapot gaan
Voordelen
- Heel modulair
- Na verwijdering van de betreffende module, zijn de postings ongewijzigd.
Alle vertalingen in één posting
Andere modules, wo. qTranslate-X en WPGlobus, beheren de verschillende vertalingen van een post, allemaal binnen één object. Mbv. shortcodes, zijn de verschillende versies van elkaar gescheiden. Dit kun je zien als de betreffende module uitzet: Opeens bevat een posting tekst in verschillende talen, gescheiden door shortcodes.
Voordelen
- Eénvoudig: Geen additionele tabellen, en weinig additionele instellingen
- Intuïtief: Vertalingen zijn altijd bij elkaar
- Goed voor search: Je vindt altijd het gezochte artikel, onafhankelijk van de taal waarin je zocht
Nadelen
- Als je de betreffende module verwijderd, worden de postings een zooitje
- Permalinks zijn niet te vertalen
- Je hebt additionele plugins nodig voor sommige andere plugins of themes. WooCommerce is daar een voorbeeld van: Met alleen qTranslate-X, is WooCommerce niet taal-aware. Mogelijk is dit een nadeel van alle methodes (muv. multi-site-oplossingen)
- In mijn ervaring werkt dit tot op heden niet voor de WooCommerce shoppagina.
Alle vertalingen in aparte WordPress-instanties
Modules zoals Multisite Language Switcher, Multilingual Press en Zanto, maken van een site een multisite met een eigen taal per site. Interessant!
Externe vertalingen
Oplossingen zoals Google Translate zorgen voor externe vertalingen, die als een laag over een site worden gelegd. Meestal computervertalingen, maar sommige modules zeggen dat ze gebruik maken van oa. crowdsourcing voor vertalingen.
Plugins meertalige content
Inventaris
- Bobo - posting-per-taal
- Google Language translator [2] - Externe vertalingen
- GTS Translation Plugin [3] - Externe vertalingen
- Lingotek [4] - Externe vertalignen
- Multilingual Press - Multisite-oplossing
- Multisite Language Switcher - Multisite-oplossing
- Polylang - posting-per-taal - Werkt samen met WooCommerce & Hoshi (theme)
- qTranslate-X - Plugin die ik het meest tegenkom. Er bestaan additionele plugins voor integratie met oa. Yoast en WooCommerce
- Sublanguage - posting-per-taal
- WooCommerce Multilingual 3 - Een meta-plugin gebaseerd op WMPL
- WPGlobus - Alle talen in één posting. Er bestaan additionele (betaalde) plugins voor integratie met oa. WooCommerce [5]
- WPML - Betaald + posting-per-taal
- xili-language - posting-per-taal
- Zanto - Multisite-oplossing.
Criteria
- Geschikt voor WooCommerce (vereist)
- Geschikt voor Hoshi (vereist)
- Geschikt voor Visual Composer (vereist)
- Alle-vertalingen-in-één post (nice-to-have).
Selectie
- Polylang → Uiteindelijke keuze (eind 2017, op advies van Milou) → Polylang (WordPress-plugin)
- WPML
- WPGlobus
- qTranslate-X - Lijkt te conflicteren met Hoshi.
Casus: Een NL-term aanpassen (lente 2018)
Het probleem
Aanvullende gegevens
- Ik kan de string niet localiseren in een db-dump met zoiets als
grep -rn db-dump.sql -e "In" | grep "winkelmand" > txt.txt
- Ik kan de string ook niet localiseren in de installatie met zoiets als
grep -rn . -e "winkelwagen"
vanaf de root van de installatie. - Deze (niet-werkende) code suggereert dat het toch echt om WooCommerce-code gaat:
// Change the Add to Cart button into View Product button // ================================================================================================================= function add_product_link( $link ) { global $product; echo '<form action="' . esc_url( $product->get_permalink( $product->id ) ) . '" method="get"> <button type="submit" class="button product_type_simple">' . __('View Product', 'woocommerce') . '</button> </form>'; } /*STEP 1 - REMOVE ADD TO CART BUTTON ON PRODUCT ARCHIVE (SHOP) */ function remove_loop_button() { remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); } // add_action('init','remove_loop_button'); add_filter( 'woocommerce_loop_add_to_cart_link', 'add_product_link' );
Casus: String toevoegen (lente 2018)
Het probleem
Aanvullende gegevens
De betreffende code in de browser:
<div class="mkd-cart-proceed-update"> <a href="http://example.com/checkout/" target="_self" class="mkd-btn mkd-btn-medium mkd-btn-solid checkout-button alt wc-forward mkd-btn-hover-outline" > <span class="mkd-btn-text"> Proceed to Checkout </span> </a> <input type="submit" name="update_cart" value="Update Cart" class="mkd-btn mkd-btn-medium mkd-btn-gradient mkd-type2-gradient-left-to-right-2x mkd-btn-hover-outline" />
De string Proceed to checkout komt ene paar keer voor in de installatie:
> grep -rn . -e "Proceed to checkout" ./wp-content/plugins/woocommerce/i18n/languages/woocommerce.pot:24771:msgid "Proceed to checkout" ./wp-content/plugins/woocommerce/templates/cart/proceed-to-checkout-button.php:3: * Proceed to checkout button ./wp-content/plugins/woocommerce/templates/cart/proceed-to-checkout-button.php:27: <?php esc_html_e( 'Proceed to checkout', 'woocommerce' ); ?> ./wp-content/languages/plugins/woocommerce-nl_NL.po:12197:msgid "Proceed to checkout" Binary file ./wp-content/languages/plugins/woocommerce-nl_NL.mo matches Binary file ./wp-content/languages/plugins/wp-plugins-woocommerce-stable-nl.mo matches
Bestand wp-content/languages/plugins/woocommerce-nl_NL.po:
#: templates/cart/proceed-to-checkout-button.php:27 msgid "Proceed to checkout" msgstr "Doorgaan naar afrekenen"
Mogelijke oorzaken
- Theme-sjablonen nemen president en die misten vertalingen [6] → Bijwerken sjablonen helpt voor winkelmand bijwerken, maar niet voor proceed to checkout
- Niet-NL admin [7] → Lijkt me sterk, want individueel account. Geen system-wide instellingen
- Ik ben beheerder op een EN-computer → Als anonieme bezoeker bekijken → Zelfde probleem
Casus: Standaardtaal spring terug naar NL (juli 2021)
Op een drietal Franstalige sites heb ik het probleem dat ca. om de paar weken, de standaardtaal van Frans terugspringt naar Nederlands. Deze sites zijn van oorsprong klonen van een Nederlandstalige site. Toch vind ik het gek dat ze juist terugspringen naar Nederlands en niet naar Engels, want dat is pas écht de standaardtaal van WordPress-sites.
Mogelijke oorzaken
Additionele taal-instelling?
- Misschien dat een taal-plugin een additionele taalinstelling kent?
- Misschiend dat een andere plugin (WooCommerce?) of theme een additionele taalinstelling kent?
wp-config.php
Polylang tijdelijk geïnstalleerd?
- Plugins voor meertaligheid lijken dit wel eens te veroorzaken. Vermoedelijk heb ik Polylang onlangs geïnstalleerd om iets te doen met de Franse vertalingen. Daarna heb ik Polylang weer verwijderd, maar misschien dat dat de bron is van deze taalwissels
Acties
- Door de lijst met plugins gegaan of er een taal-gerelateerde plugin bijzit: Nee
- Door de lijst met plugins gegaan of er een andere plugin bijzit die misschien de taal zou kunnen aanpassen: WooCommerce?, Yoast?
- WooCommerce » Status: Taal is fr_FR zoals verwacht. Verder geen gekke dingen
wp-config.php
: Geen taalinstelling gevonden- Yoast » Configuration wizard doorlopen: Geen taalgerelateerde instellingen
Bronnen
Zie ook
Bronnen
- https://codex.wordpress.org/Multilingual_WordPress
- https://wordpress.org/plugins/qtranslate-x/
- https://shopitpress.com/blog/woocommerce-setup/how-to-easily-make-woocommerce-multilingual/ → Adviseert WPML. Onduidelijk of ze onafhankelijk zijn
- https://www.wpmayor.com/introducing-woocommerce-multilingual-plugin/ → Beperkt
- https://make.wordpress.org/polyglots/teams/
- https://codex.wordpress.org/Installing_WordPress_in_Your_Language
- https://codex.wordpress.org/nl:WordPress_in_het_Nederlands - Alleen geen mo-bestand
- http://www.wcommerce.nl/woocommerce-in-het-nederlands-instellen/ - Behulpzaam tav. plugins & vertalingen
- https://stackoverflow.com/questions/640409/can-i-install-update-wordpress-plugins-without-providing-ftp-access - Heel goed!
- https://wordpress.stackexchange.com/questions/57219/translate-a-plugin-using-po-mo-files/57243 - Goede uitleg omtrent .po, .mo, .pot, .poedit + procedure