Limbă diferită pentru Frontend vs Backend
Folosesc un pachet WordPress în engleză și acesta funcționează foarte bine.
Acum, aș dori să traduc unele elemente ale blogului (cum ar fi "publicat la", "comentarii") etc., dar să las interfața panoului de administrare intactă în engleză.
Există vreun mecanism pentru a traduce doar elementele site-ului?

Puteți face următoarele:
- Obțineți pachetul de limbă (de exemplu
ro_RO.mo
) de pe wordpress.org. Dacă pachetul de limbă nu este disponibil ca descărcare separată, puteți utiliza fișierul.mo
inclus în arhiva ZIP WordPress pentru limba dumneavoastră. Acesta se găsește înwp-content/languages
. - Mutați fișierul
.mo
înwp-content/languages/
din instalarea WordPress implicită (în engleză). - Modificați constanta
WPLANG
înwp-config.php
la noul local (de exempluro_RO
) - În fișierul
functions.php
adăugați următorul filtru:
functions.php
add_filter('locale', 'wpse27056_setLocale');
function wpse27056_setLocale($locale) {
if ( is_admin() ) {
return 'en_US';
}
return $locale;
}

acum, ce înțelegi prin "instalează pachetul de limbă"? trebuie să dezinstalez WordPress și să instalez un nou WordPress, dar în limba franceză? Nu vreau să dezinstalez WordPress-ul meu în engleză.

Nu, nu trebuie să reinstalezi nimic. Doar descarcă WP în limba dorită și copiază fișierul de limbă din wp-content/languages/
în instalarea ta originală în engleză a WordPress și modifică wp-config.php
așa cum este descris mai sus. Sau pur și simplu descarcă fișierul fr_FR.mo
de pe acest site.

Nu aveam folderul wp-content/languages/
, așa că a trebuit să-l creez. După ce am făcut această manipulare, am obținut opusul a ceea ce doream. Acum am panoul de administrare în română, dar pagina (indiferent dacă sunt autentificat sau nu) - în engleză. Probabil ar trebui să traduc tema...

Desigur, ai nevoie de tema tradusă. Dar backend-ul ar trebui să fie în engleză, nu în română, dacă ai setat is_admin()
în filtrul de mai sus.

Am adăugat acest cod la sfârșitul fișierului functions.php al temei curente (twenty ten)... Este corect?

Am cod bazat pe acest lucru, așa că a-l pune în functions.php
al temei nu va funcționa deoarece e prea târziu. L-am plasat într-un mu-plugin și am observat rezultate mult îmbunătățite.

În WordPress 5.x este foarte simplu să obții limbi diferite pentru partea frontală și cea administrativă a site-ului.
Pentru a schimba limba site-ului, accesează Setări -> Generale -> Limba site-ului și selectează limba dorită.
Pentru Panoul de Administrare, accesează Utilizatori -> Profilul tău și selectează limba pe care dorești să o ai în Panoul de Administrare
Astfel, toate soluțiile anterioare au devenit depășite, fiecare utilizator poate seta propria limbă pentru interfața WordPress

Acesta ar trebui să fie răspunsul selectat pentru 2019+. Nu sunt necesare plugin-uri și soluția este atât de simplă. Mulțumesc!

Puteți utiliza pluginuri pentru asta: http://wordpress.org/extend/plugins/kau-boys-backend-localization/ sau http://wordpress.org/extend/plugins/wp-native-dashboard/

Bine ați venit pe site-ul nostru. Vă rugăm să adăugați o explicație: Ce fac aceste plugin-uri, care sunt diferențele?

Cred că fac exact același lucru. (Eu folosesc doar primul...) Puteți instala fișiere de limbă diferite și cu aceste plugin-uri puteți schimba limba pentru backend în mod independent. Ambele plugin-uri oferă comutatoare de limbă în Dashboard, o casetă de selecție a limbii la autentificare și un add-on pentru pagina de profil pentru limba specifică utilizatorului.

Dacă cineva încă caută soluția, iată ce ar trebui să faceți începând cu versiunea 4.7
function wp_noshor_redefine_locale($locale) {
if( is_admin() ):
switch_to_locale('en_US');
endif;
}
add_filter('init','wp_noshor_redefine_locale');
Această funcție forțează panoul de administrare să se încarce în engleză, după care puteți merge la setări și alegeți limba dorită.

Un răspuns actualizat pentru WordPress 4+
Răspunsul lui @rofflox este încă corect, dar au existat unele modificări în WordPress care pot avea un efect atunci când folosiți funcția lui 'așa cum este' începând cu WP 4.0.
Constanta wp-config WPLANG
a fost depreciată în favoarea setării limbii site-ului prin intermediul unui meniu dropdown în Setări->Generale
. Aceasta înseamnă că, după ce schimbați limba site-ului în Suedeză (de exemplu), administrația site-ului va apărea în Engleză... dar acel meniu dropdown pentru Limba Site-ului în Setări->Generale
va fi preselectat ca Engleză (Statele Unite). Aceasta înseamnă că, dacă faceți modificări la setările Generale mai târziu și uitați să selectați din nou Suedeză ca limbă a site-ului, întregul site va reveni la Engleză.
Aș recomanda crearea de funcții în fișierul functions.php
astfel:
// Setează localul; funcție originală de la @rofflox
function vnmFunctionality_setLocale($locale) {
if (is_admin()) {
return 'en_US';
}
return $locale;
}
add_filter('locale', 'vnmFunctionality_setLocale');
// Încarcă un script pentru a forța setarea meniului dropdown pentru Limbă pe pagina de Opțiuni Generale, pentru orice eventualitate în care uităm de el mai târziu.
function vnmFunctionality_countryReminderScript($hook) {
if ($hook != 'options-general.php') {
return;
}
wp_enqueue_script('lang-reminder-script', get_template_directory_uri() . '/js/site-language.js', array('jquery'), '1.0.0', true);
wp_localize_script('lang-reminder-script', 'langObject', array(
'lang' => get_option('WPLANG'),
));
}
add_action('admin_enqueue_scripts', 'vnmFunctionality_countryReminderScript');
Și apoi un fișier Javascript numit site-language.js
(salvat într-un folder /js/
în tema dumneavoastră) astfel:
jQuery(document).ready(function($) {
$('select#WPLANG').val(langObject.lang).change();
});
Aceasta ar trebui să selecteze automat limba curentă de afișare a site-ului în meniul dropdown de pe pagina de Opțiuni, astfel încât să nu trebuiască să vă amintiți să o faceți manual de fiecare dată.

Ce ai nevoie este să traduci tema ta. Dacă tema ta are un fișier .pot, atunci traducerea este ușoară. Doar urmează pașii de la
http://www.appthemes.com/blog/how-to-translate-a-wordpress-theme/
Altfel, va trebui să editezi fișierele temei și să schimbi cuvintele în fiecare instanță.
