Multilenguaje, Multilenguaje, multillenguatge multillenguatge , , 多语言多语言
Llegar a todos.Llegar a todos.
AArribar a tot el mónrribar a tot el món..
大家达成 大家达成
Quién soy?Quién soy?
Gabriel GalanternikGabriel Galanternik Oracle DBA Oracle DBA
“Adrupalado”“Adrupalado” 2 años de desarrollo de 2 años de desarrollo de
portales con Drupal 6portales con Drupal 6 Analizador de Redes Analizador de Redes
Sociales y Sociales y Comunidades Comunidades VirtualesVirtuales
De qué la va?De qué la va?
Nuestros navegantes, nos entienden?Nuestros navegantes, nos entienden? Los que no, nos interesan?Los que no, nos interesan?
Soluciones!Soluciones!
Distintas Versiones del mismo sitioDistintas Versiones del mismo sitio– Dificil de mantenerDificil de mantener– Navegación restringida por dominioNavegación restringida por dominio– Mejor noMejor no
Un único sitio con traduccion configurableUn único sitio con traduccion configurable– Por dominio, por ip, por url, por elección Por dominio, por ip, por url, por elección
del usuariodel usuario
– Traduzcamos TODO, interfaz, contenido, Traduzcamos TODO, interfaz, contenido, taxonomía, etc, etc, etctaxonomía, etc, etc, etc
Que el usuario elija!Que el usuario elija!
http://traducciones.sandboxdrupal.com.ar/es/admin/settings/language/configure
Qué tenemos que hacer?Qué tenemos que hacer?
• Lenguaje por Default.Lenguaje por Default.• Configurar módulos básicosConfigurar módulos básicos• Traducciones de los elementosTraducciones de los elementos• Seguir las reglasSeguir las reglas
Ejemplo que vamos a mostrarEjemplo que vamos a mostrar
Lenguaje por Default.Lenguaje por Default.
Descargar nuevos lenguajes: http://drupal.org/project/translations
Activacion de lenguajes instalados: http://traducciones.sandboxdrupal.com.ar/es/admin/settings/language
Agregar o actualizar lenguajes: http://traducciones.sandboxdrupal.com.ar/es/admin/settings/language/add
Configurar módulos básicosConfigurar módulos básicosObligatoriosObligatorios Locale: Traducción de Interface – CoreLocale: Traducción de Interface – Core Content Translation: Contenido – Core Content Translation: Contenido – Core Internationalization: i18n – ContribuídoInternationalization: i18n – Contribuído I18n Taxonomy Views: Términos – ContribuídoI18n Taxonomy Views: Términos – Contribuído Select TranslationSelect Translation
OpcionalesOpcionales tContact: Formulario de contactotContact: Formulario de contacto I18n Logo: Logo por lenguajeI18n Logo: Logo por lenguaje Translation 404: Página Not FoundTranslation 404: Página Not Found Language Icons: Iconos de cada lenguajeLanguage Icons: Iconos de cada lenguaje
LocaleLocale
Módulo del CoreMódulo del Core Qué nos provee?Qué nos provee?
– Traducción de la InterfazTraducción de la Interfaz
– Visualización de la interfaz en el lenguaje correctoVisualización de la interfaz en el lenguaje correcto
– Bloque de cambio de lenguajeBloque de cambio de lenguaje
– Función locale()Función locale()
– Negociación del lenguajeNegociación del lenguaje» Ninguna: DefaultNinguna: Default
» Prefijo: example.com/ES/...Prefijo: example.com/ES/...
» Prefijo y regreso: prefijo, si no, perfil usuario, navegador, defaultPrefijo y regreso: prefijo, si no, perfil usuario, navegador, default
» Dominio: ES.example.comDominio: ES.example.com
http://traducciones.sandboxdrupal.com.ar/es/admin/settings/language.
Content TranslationContent Translation
Módulo del CoreMódulo del Core Qué provee?Qué provee?
– Traducción del contenidoTraducción del contenido– Configuración en cada contenidoConfiguración en cada contenido
Select translationSelect translation
Módulo contribuídoMódulo contribuído Qué provee?Qué provee?
– Filtro para views: “Node: Select Translation”Filtro para views: “Node: Select Translation”– Varios criteriosVarios criterios
» current: el idioma en el cual se esta navegandocurrent: el idioma en el cual se esta navegando» user: el idioma elegido por el usuariouser: el idioma elegido por el usuario» default: el idioma por defecto del sitiodefault: el idioma por defecto del sitio» original: el idioma original del contenidooriginal: el idioma original del contenido» código: cada lenguaje tiene un código asociadocódigo: cada lenguaje tiene un código asociado
Internationalization o i18nInternationalization o i18n
Módulo contribuído esencial!Módulo contribuído esencial! Qué provee? Qué provee?
– Bloques: Título y CuerpoBloques: Título y Cuerpo
– Campos CCKCampos CCK
– Content TypeContent Type
– Menúes: (no Nice menus...)Menúes: (no Nice menus...)
– Campos del PerfilCampos del Perfil
– Taxonomía: Términos y vocabulariosTaxonomía: Términos y vocabularios
– Views: Labels y textosViews: Labels y textos
– Taxonomía en Views: Submódulo de i18nTaxonomía en Views: Submódulo de i18n
– Función Tt()Función Tt()
Módulos opcionalesMódulos opcionales
Language Icons: íconos para traducción en cada nodoLanguage Icons: íconos para traducción en cada nodo tContact: Formulario de contacto totalmente traducible. tContact: Formulario de contacto totalmente traducible.
Filtro de Categorías.Filtro de Categorías. I18n Logo: Para cada lenguaje un logo distinto, aunque es I18n Logo: Para cada lenguaje un logo distinto, aunque es
global para todos los temasglobal para todos los temas Preserve language: permite ver la traducción de un nodo sin Preserve language: permite ver la traducción de un nodo sin
cambiar “todo el sitio” al lenguaje elegidocambiar “todo el sitio” al lenguaje elegido Translation Access: permisos de Creación/Edición de Translation Access: permisos de Creación/Edición de
traducciones por lenguaje/usuariotraducciones por lenguaje/usuario Translation 404: mensaje cuando una traducción no existe, Translation 404: mensaje cuando una traducción no existe,
en lugar de mostrar otra traducciónen lugar de mostrar otra traducción
Traducciones de los elementosTraducciones de los elementos
Una vez configurado todo... qué hacemos???Una vez configurado todo... qué hacemos??? Primero: Qué hay que traducir?Primero: Qué hay que traducir?
– InterfazInterfaz– ViewsViews
» Table HeaderTable Header
» TérminosTérminos
» Empty TextEmpty Text
» LabelsLabels
» Exposed FiltersExposed Filters
Traducciones de los elementosTraducciones de los elementos Sólo eso??? No, no, continúa...Sólo eso??? No, no, continúa...
– ContenidoContenido» Título, CuerpoTítulo, Cuerpo
» CCKCCK
» Lables CCKLables CCK
» Tipos de contenido DefaultTipos de contenido Default
» Tipos de contenidos propiosTipos de contenidos propios
» Allowed Values CCKAllowed Values CCK
» Node ReferencesNode References
Traducciones de los elementosTraducciones de los elementos Y por último...Y por último...
– TaxonomíaTaxonomía» Términos Términos
» VocabulariosVocabularios
– MenúMenú» Menu EntryMenu Entry
» Nice Menu o Menu DesplegableNice Menu o Menu Desplegable
– Mails de usuarioMails de usuario
Interfaz de TraducciónInterfaz de Traducción
Permite la traducción “en vivo” de StringsPermite la traducción “en vivo” de Strings» http://traducciones.sandboxdrupal.com.ar/admin/build/http://traducciones.sandboxdrupal.com.ar/admin/build/
translatetranslate
» Buscar y traducir cada StringBuscar y traducir cada String
Importar archivos .poImportar archivos .po Exportar TraduccionesExportar Traducciones Reconstruir los Strings para la traducciónReconstruir los Strings para la traducción
Interfaz de TraducciónInterfaz de Traducción
Qué nos permite traducir?Qué nos permite traducir?– ViewsViews
» Origen: NombreView:DisplayOrigen: NombreView:Display» Grupo: ViewGrupo: View» Idioma: Default del sitioIdioma: Default del sitio
– Views Table HeaderViews Table Header» Origen: lugar vistoOrigen: lugar visto» Grupo: Interfaz incorporadaGrupo: Interfaz incorporada» Idioma: InglésIdioma: Inglés
– Exposed FilterExposed Filter» Origen: lugar vistoOrigen: lugar visto» Grupo: Interfaz incorporadaGrupo: Interfaz incorporada» Idioma: InglésIdioma: Inglés
– VocabularioVocabulario» Origen: vocabulary:vid:nameOrigen: vocabulary:vid:name» Grupo de Texto: TaxonomyGrupo de Texto: Taxonomy» Idioma: Default del sitioIdioma: Default del sitio
– Views LabelsViews Labels» Origen: lugar vistoOrigen: lugar visto» Grupo: Interfaz incorporadaGrupo: Interfaz incorporada» Idioma: InglésIdioma: Inglés
– TérminosTérminos» Origen: term:tid:nameOrigen: term:tid:name» Grupo: TaxonomyGrupo: Taxonomy» Idioma: Default del sitioIdioma: Default del sitio
Interfaz de TraducciónInterfaz de Traducción
Qué más? Qué más? – Lables CCKLables CCK
» Origen: lugar vistoOrigen: lugar visto» Grupo: Interfaz incorporadaGrupo: Interfaz incorporada» Idioma: InglésIdioma: Inglés
– Content Types de UsuarioContent Types de Usuario» Origen:Origen:
type:tipodecontenido:nametype:tipodecontenido:name
» Grupo: Content TypeGrupo: Content Type» Idioma: DefaultIdioma: Default
– Content Type Built InContent Type Built In» Origen: lugar vistoOrigen: lugar visto» Grupo: Interfaz incorporadaGrupo: Interfaz incorporada» Idioma: InglésIdioma: Inglés
– Empty TextEmpty Text» Origen: lugar vistoOrigen: lugar visto» Grupo: Interfaz incorporadaGrupo: Interfaz incorporada» Idioma: InglésIdioma: Inglés
– Menu EntryMenu Entry» Origen: item:MID:titleOrigen: item:MID:title» Grupo: MenúGrupo: Menú» Idioma: DefaultIdioma: Default
– Nice Menu (sólo Dev version)Nice Menu (sólo Dev version)» Origen: item:Mid:titleOrigen: item:Mid:title» Grupo: MenuGrupo: Menu» Idioma: Default del sitioIdioma: Default del sitio
Allowed Values CCKAllowed Values CCK
Un poco de PHPUn poco de PHPreturn array( nowhere => t('Nowhere'), return array( nowhere => t('Nowhere'),
main => t('Main region in frontpage'), main => t('Main region in frontpage'),
secondary => t('Secondary region in frontpage'), secondary => t('Secondary region in frontpage'),
right => t('Right sidebar in frontpage'), right => t('Right sidebar in frontpage'),
left => t('Left sidebar in frontpage'),);left => t('Left sidebar in frontpage'),);
Y ahora pasar por la interfaz de traducciónY ahora pasar por la interfaz de traducción
Términos en las ViewsTérminos en las Views
Se hereda de TérminosSe hereda de Términos Configurar y utilizar el módulo específico:Configurar y utilizar el módulo específico:
– I18n taxonomy viewsI18n taxonomy views
Como administrador, establecerse en un idiomaComo administrador, establecerse en un idioma Escribir los mails en ese idiomaEscribir los mails en ese idioma Cambiarse a cada idioma y volver a escribirlosCambiarse a cada idioma y volver a escribirlos
Mails de usuarioMails de usuario
http://traducciones.sandboxdrupal.com.ar/es/admin/user/settings
ContenidoContenido
Crear el contenidoCrear el contenido Marcar el idioma en alguno distinto de NeutroMarcar el idioma en alguno distinto de Neutro Aparecerá el Tab TranslateAparecerá el Tab Translate En él se crean las traducciones del contenidoEn él se crean las traducciones del contenido O se asocia un contenido ya existenteO se asocia un contenido ya existente
Node ReferenceNode Reference
ProblemaProblema– 2 empresas: Google y Tesis OyS2 empresas: Google y Tesis OyS
– Cada una con su traducciónCada una con su traducción» Google Castellano, Google CatalánGoogle Castellano, Google Catalán
» Tesis OyS Castellano, Tesis OyS CatalánTesis OyS Castellano, Tesis OyS Catalán
– Un producto Neutro: Planeta Pro DentalUn producto Neutro: Planeta Pro Dental
– Editando en Castellano, por Node Reference, se asocian Editando en Castellano, por Node Reference, se asocian al producto PPD las 2 empresas.al producto PPD las 2 empresas.
– Viendo PPD en Catalán, veo las referencias en Viendo PPD en Catalán, veo las referencias en Castellano.Castellano.
Node ReferenceNode Reference
SoluciónSolución– Translated Node ReferenceTranslated Node Reference– Módulo contribuído, sponsoreado por Tesis Módulo contribuído, sponsoreado por Tesis
OySOyS– Formatter para mostrar la traducción adecuada Formatter para mostrar la traducción adecuada
del nodo referenciado.del nodo referenciado.– Configuración de criterios de lenguaje Configuración de criterios de lenguaje
mostrado.mostrado.
Node ReferenceNode Reference
Seguir las reglasSeguir las reglas ViewsViews Idioma: Default del sitioIdioma: Default del sitio
Views Table HeaderViews Table Header Idioma: InglésIdioma: Inglés
Exposed FilterExposed Filter Idioma: InglésIdioma: Inglés
VocabularioVocabulario Idioma: Default del sitioIdioma: Default del sitio
Views LabelsViews Labels Idioma: InglésIdioma: Inglés
TérminosTérminos Idioma: Default del sitioIdioma: Default del sitio
Lables CCKLables CCK Idioma: InglésIdioma: Inglés
Content Types de UsuarioContent Types de Usuario Idioma: DefaultIdioma: Default
Content Type Built InContent Type Built In Idioma: InglésIdioma: Inglés
Empty TextEmpty Text Idioma: InglésIdioma: Inglés
Menu EntryMenu Entry Idioma: DefaultIdioma: Default
Nice Menu (Dev version)Nice Menu (Dev version) Idioma: Default del sitioIdioma: Default del sitio
Preguntas?Preguntas?
Muchas Gracias!Muchas Gracias!
Yo: [email protected]: [email protected] [email protected]@gmail.com Twitter: ggalanternikTwitter: ggalanternik At Drupal.org: ggalan1173At Drupal.org: ggalan1173 At drupalcamp.es: ggalanternikAt drupalcamp.es: ggalanternik Sitios con DrupalSitios con Drupal
– www.tesis-oys.com.arwww.tesis-oys.com.ar– www.planetaprodental.comwww.planetaprodental.com
Top Related