Diferentes Idiomas para Frontend vs Backend
Uso un paquete de WordPress en inglés y esto funciona muy bien.
Ahora, me gustaría traducir algunos elementos del blog (como "publicado en", "comentarios", etc.), pero mantener la interfaz del panel de administración intacta en inglés.
¿Existe algún mecanismo para traducir solo los elementos del sitio web?

Puedes hacer lo siguiente:
- Obtener el paquete de idioma (por ejemplo
de_DE.mo
) desde wordpress.org. Si el paquete de idioma no está disponible como descarga independiente, también puedes usar el archivo.mo
que viene incluido en el archivo ZIP de WordPress para tu idioma. Se encuentra enwp-content/languages
. - Mover el archivo
.mo
awp-content/languages/
de tu instalación predeterminada de WordPress (en inglés). - Cambiar la constante
WPLANG
enwp-config.php
al nuevo locale (por ejemplode_DE
) - En tu archivo
functions.php
agregar el siguiente filtro:
functions.php
add_filter('locale', 'wpse27056_setLocale');
function wpse27056_setLocale($locale) {
if ( is_admin() ) {
return 'en_US';
}
return $locale;
}

ahora, ¿qué quieres decir con "instalar tu paquete de idioma"? ¿debería desinstalar WordPress e instalar el nuevo WordPress, pero en francés? No quiero desinstalar mi WordPress en inglés.

No, no tienes que reinstalar nada. Solo descarga WP en tu idioma deseado y copia el archivo de idioma desde wp-content/languages/
a tu instalación original en inglés de WP y modifica wp-config.php
como se describió anteriormente. O simplemente descarga el archivo fr_FR.mo
desde este sitio.

No tenía la carpeta wp-content/languages/
, así que debería crearla. Después de realizar esa manipulación, obtuve lo contrario de lo que quería. Ahora tengo el panel de administración en rumano, pero la página (tanto si estoy logueado como si no) en inglés. Quizás debería traducir el tema...

Por supuesto, necesitas el tema traducido. Pero el backend debería estar en inglés, no en rumano, si configuras is_admin()
en el filtro anterior.

Agregué este código al final del archivo functions.php del tema actual (twenty ten)... ¿Es correcto?

Tengo código basado en esto, ponerlo en el functions.php
del tema no va a funcionar porque es demasiado tarde. Lo coloqué en un mu-plugin y vi resultados considerablemente mejorados.

Desde la versión 4.7 de WordPress, diferentes usuarios del Backend pueden establecer su propio idioma preferido para el administrador utilizando el selector de idioma nativo de WordPress. De esta manera, ven la interfaz de WordPress en su idioma y pueden gestionar el contenido más fácilmente.

En WordPress 5.x es realmente sencillo obtener diferentes idiomas para el frontend y el backend.
Para cambiar el idioma del sitio, ve a Ajustes → General → Idioma del sitio y selecciona el idioma del sitio.
Para el Panel de Administración, ve a Usuarios → Tu perfil y selecciona el idioma que deseas tener en el Panel de Administración.
Todas las soluciones anteriores se han vuelto absolutas, cada usuario puede establecer su propio idioma para la interfaz de WordPress.

Esta debería ser la respuesta seleccionada para 2019 en adelante. No se requieren plugins y la solución es muy simple. ¡Gracias!

Puedes usar plugins para eso: http://wordpress.org/extend/plugins/kau-boys-backend-localization/ o http://wordpress.org/extend/plugins/wp-native-dashboard/

Bienvenido a nuestro sitio. Por favor, agrega una explicación: ¿Qué hacen estos plugins y cuáles son las diferencias?

Creo que hacen exactamente lo mismo. (Yo solo uso el primero...) Puedes instalar diferentes archivos de idioma y con los plugins puedes cambiar el idioma del backend de forma independiente. Ambos plugins proporcionan selectores de idioma en el Dashboard, una caja de selección de idioma para el inicio de sesión y un complemento en la página de perfil para el idioma específico del usuario.

Si alguien todavía está buscando esto, aquí está lo que deberías hacer desde la versión 4.7
// Función para redefinir el idioma en el área de administración
function wp_noshor_redefine_locale($locale) {
if( is_admin() ):
switch_to_locale('en_US'); // Cambiar a inglés en el panel de administración
endif;
}
// Añadir filtro al iniciar
add_filter('init','wp_noshor_redefine_locale');
Esto fuerza que el panel de control se cargue en inglés, luego puedes ir a ajustes y configurar el idioma que prefieras.

Una respuesta actualizada para WordPress 4+
La respuesta de @rofflox sigue siendo correcta, pero ha habido algunos cambios en WordPress que pueden afectar al usar su función "tal cual" desde la versión 4.0.
La constante wp-config WPLANG
ha quedado obsoleta en favor de establecer el idioma del sitio mediante un desplegable en Ajustes->Generales
. Esto significa que, después de cambiar el idioma de tu sitio a Sueco (por ejemplo), el panel de administración de tu sitio aparecerá en inglés... pero ese desplegable de Idioma del sitio en Ajustes->Generales
estará preseleccionado como Inglés (Estados Unidos). Eso significa que, si realizas cambios en tus ajustes generales más tarde y olvidas seleccionar Sueco como idioma de tu sitio nuevamente, todo el sitio volverá al inglés.
Recomendaría crear funciones en tu archivo functions.php
así:
// Establecer el locale; función original de @rofflox
function vnmFunctionality_setLocale($locale) {
if (is_admin()) {
return 'en_US';
}
return $locale;
}
add_filter('locale', 'vnmFunctionality_setLocale');
// Encolar un script para forzar la selección del desplegable de Idioma en la página de Opciones Generales, por si acaso lo olvidamos más tarde.
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');
Y luego un archivo JavaScript llamado site-language.js
(guardado en una carpeta /js/
en tu tema) así:
jQuery(document).ready(function($) {
$('select#WPLANG').val(langObject.lang).change();
});
Esto debería preseleccionar automáticamente el idioma actual de visualización del sitio en el desplegable de la página de Opciones, para que no tengas que recordar hacerlo manualmente cada vez.

Lo que necesitas es traducir tu tema. Si tu tema tiene un archivo .pot, entonces es fácil de traducir. Solo sigue los pasos en:
http://www.appthemes.com/blog/how-to-translate-a-wordpress-theme/
De lo contrario, necesitarás editar los archivos del tema y cambiar las palabras en cada instancia.
