Upgrade to Pro — share decks privately, control downloads, hide ads and more …

I [i18n] you: estrategias para manejo efectivo de traducciones en proyectos de Open Source

I [i18n] you: estrategias para manejo efectivo de traducciones en proyectos de Open Source

A pesar de que el inglés es el idioma de facto en el desarrollo de software, hay proyectos donde es fundamental el soporte para multiples idioma. En esta charla, les contaré sobre cómo dos proyectos en los que contribuyo, ruby-lang.org y docs.railsbridge.org manejan contenido en varios idiomas y algunos tips sobre cómo preparar tus proyectos FLOSS para implementar i18n fácilmente.

Fernando Perales

October 25, 2019
Tweet

More Decks by Fernando Perales

Other Decks in Programming

Transcript

  1. @FerPeralesM
    #FSL2019
    I [i18n] you: estrategias para manejo efectivo de
    traducciones en proyectos de Open Source
    Fernando Perales

    View full-size slide

  2. @FerPeralesM
    #FSL2019

    View full-size slide

  3. @FerPeralesM
    #FSL2019
    Ingeniero de Software @ michelada.io
    Egresado Ing. En Computación @ B. UdeG
    Promotor @ FLOSS
    Doom Metal Lover
    Anfitrión @ traguitos de michelada meetup
    Co-organizador @ RailsBridge Mexico

    View full-size slide

  4. @FerPeralesM
    #FSL2019

    View full-size slide

  5. @FerPeralesM
    #FSL2019
    i18n

    View full-size slide

  6. @FerPeralesM
    #FSL2019
    i18n
    internationalization

    View full-size slide

  7. @FerPeralesM
    #FSL2019
    Numerónimo

    View full-size slide

  8. @FerPeralesM
    #FSL2019
    salu2

    View full-size slide

  9. @FerPeralesM
    #FSL2019
    911

    View full-size slide

  10. @FerPeralesM
    #FSL2019
    101

    View full-size slide

  11. @FerPeralesM
    #FSL2019
    CR7

    View full-size slide

  12. @FerPeralesM
    #FSL2019
    G20

    View full-size slide

  13. @FerPeralesM
    #FSL2019
    k8s
    kubernetes

    View full-size slide

  14. @FerPeralesM
    #FSL2019
    a11y
    accessibility

    View full-size slide

  15. @FerPeralesM
    #FSL2019
    p45s

    View full-size slide

  16. @FerPeralesM
    #FSL2019
    Pneumonoultramicroscopicsilicovolcanoconiosis

    View full-size slide

  17. @FerPeralesM
    #FSL2019
    i18n
    internationalization

    View full-size slide

  18. @FerPeralesM
    #FSL2019
    –Wikipedia - Internacionalización y localización
    “La internacionalización es el proceso mediante
    el cual se prepara un elemento o producto
    para permitir su adaptación a diferentes
    regiones.”

    View full-size slide

  19. @FerPeralesM
    #FSL2019
    ¿Qué abarca la
    internacionalización?

    View full-size slide

  20. @FerPeralesM
    #FSL2019
    Varios idiomas

    View full-size slide

  21. @FerPeralesM
    #FSL2019
    Convenciones culturales

    View full-size slide

  22. @FerPeralesM
    #FSL2019
    Zonas horarias

    View full-size slide

  23. @FerPeralesM
    #FSL2019
    Formato de hora

    View full-size slide

  24. @FerPeralesM
    #FSL2019
    Formato de fecha

    View full-size slide

  25. @FerPeralesM
    #FSL2019
    Monedas internacionales

    View full-size slide

  26. @FerPeralesM
    #FSL2019
    Sistemas de peso y medidas

    View full-size slide

  27. @FerPeralesM
    #FSL2019
    Códigos de caracteres

    View full-size slide

  28. @FerPeralesM
    #FSL2019
    Formatos de números

    View full-size slide

  29. @FerPeralesM
    #FSL2019
    1400

    View full-size slide

  30. @FerPeralesM
    #FSL2019
    ¿Por qué pensar en la
    internacionalización?

    View full-size slide

  31. @FerPeralesM
    #FSL2019
    Somos muchos en el mundo

    View full-size slide

  32. @FerPeralesM
    #FSL2019
    worldometers.info

    View full-size slide

  33. @FerPeralesM
    #FSL2019

    View full-size slide

  34. @FerPeralesM
    #FSL2019
    Y hablamos diferentes
    lenguajes

    View full-size slide

  35. @FerPeralesM
    #FSL2019
    bbc.co.uk

    View full-size slide

  36. @FerPeralesM
    #FSL2019
    http://www.bbc.co.uk/languages/guide/languages.shtml
    “It’s estimated that up to 7,000 different
    languages are spoken around the world. 90%
    of these languages are used by less than
    100,000 people. Over a million people
    converse in 150-200 languages and 46
    languages have just a single speaker!”

    View full-size slide

  37. @FerPeralesM
    #FSL2019
    Y diferentes variantes
    regionales

    View full-size slide

  38. @FerPeralesM
    #FSL2019
    !

    View full-size slide

  39. @FerPeralesM
    #FSL2019
    es-ES = 99%

    View full-size slide

  40. @FerPeralesM
    #FSL2019

    View full-size slide

  41. @FerPeralesM
    #FSL2019
    es-ES = 99.7%
    ca-ES = 78.3%

    View full-size slide

  42. @FerPeralesM
    #FSL2019
    ¿Por qué es importante la
    internacionalización?

    View full-size slide

  43. @FerPeralesM
    #FSL2019

    View full-size slide

  44. @FerPeralesM
    #FSL2019

    View full-size slide

  45. @FerPeralesM
    #FSL2019

    View full-size slide

  46. @FerPeralesM
    #FSL2019
    "

    View full-size slide

  47. @FerPeralesM
    #FSL2019
    Trivia

    View full-size slide

  48. @FerPeralesM
    #FSL2019
    ¿Cuál es el porcentaje de
    personas que dominan el inglés
    en México?

    View full-size slide

  49. @FerPeralesM
    #FSL2019
    5%

    View full-size slide

  50. @FerPeralesM
    #FSL2019
    No debería ser obligatorio saber
    inglés para usar una
    computadora

    View full-size slide

  51. @FerPeralesM
    #FSL2019
    ¿Cómo decidir una estrategia
    de internacionalización?

    View full-size slide

  52. @FerPeralesM
    #FSL2019
    Tipo de proyecto

    View full-size slide

  53. @FerPeralesM
    #FSL2019
    Contenido generado por humanos
    vs
    Contenido generado por código

    View full-size slide

  54. @FerPeralesM
    #FSL2019
    Contenido generado por
    humanos

    View full-size slide

  55. @FerPeralesM
    #FSL2019
    ruby-lang.org

    View full-size slide

  56. @FerPeralesM
    #FSL2019

    View full-size slide

  57. @FerPeralesM
    #FSL2019

    View full-size slide

  58. @FerPeralesM
    #FSL2019
    docs.railsbridge.org

    View full-size slide

  59. @FerPeralesM
    #FSL2019

    View full-size slide

  60. @FerPeralesM
    #FSL2019

    View full-size slide

  61. @FerPeralesM
    #FSL2019
    Contenido generado por código

    View full-size slide

  62. @FerPeralesM
    #FSL2019
    spreecommerce.org

    View full-size slide

  63. @FerPeralesM
    #FSL2019

    View full-size slide

  64. @FerPeralesM
    #FSL2019
    Traducciones en el código
    vs
    Uso de servicios

    View full-size slide

  65. @FerPeralesM
    #FSL2019
    Traducciones en el código

    View full-size slide

  66. @FerPeralesM
    #FSL2019
    Estructura de directorios

    View full-size slide

  67. @FerPeralesM
    #FSL2019
    ruby-lang.org

    View full-size slide

  68. @FerPeralesM
    #FSL2019

    View full-size slide

  69. @FerPeralesM
    #FSL2019
    docs.railsbridge.org

    View full-size slide

  70. @FerPeralesM
    #FSL2019

    View full-size slide

  71. @FerPeralesM
    #FSL2019

    View full-size slide

  72. @FerPeralesM
    #FSL2019

    View full-size slide

  73. @FerPeralesM
    #FSL2019
    Archivos

    View full-size slide

  74. @FerPeralesM
    #FSL2019
    es.yml

    View full-size slide

  75. @FerPeralesM
    #FSL2019

    View full-size slide

  76. @FerPeralesM
    #FSL2019
    ¿Qué formato vamos a usar?

    View full-size slide

  77. @FerPeralesM
    #FSL2019
    ruby-lang.org

    View full-size slide

  78. @FerPeralesM
    #FSL2019

    View full-size slide

  79. @FerPeralesM
    #FSL2019

    View full-size slide

  80. @FerPeralesM
    #FSL2019
    docs.railsbridge.org

    View full-size slide

  81. @FerPeralesM
    #FSL2019

    View full-size slide

  82. @FerPeralesM
    #FSL2019
    Traducciones en servicios

    View full-size slide

  83. @FerPeralesM
    #FSL2019
    transifex.com

    View full-size slide

  84. @FerPeralesM
    #FSL2019
    Consejos generales

    View full-size slide

  85. @FerPeralesM
    #FSL2019
    Iniciar tu proyecto con una
    estructura que permita
    incorporar i18n fácilmente

    View full-size slide

  86. @FerPeralesM
    #FSL2019
    Abstraer la capa de
    internacionalización

    View full-size slide

  87. @FerPeralesM
    #FSL2019
    github.com/
    ruby-i18n/i18n

    View full-size slide

  88. @FerPeralesM
    #FSL2019
    config/locales/en.yml

    View full-size slide

  89. @FerPeralesM
    #FSL2019

    View full-size slide

  90. @FerPeralesM
    #FSL2019
    Usar llaves como la fuente de
    traducción

    View full-size slide

  91. @FerPeralesM
    #FSL2019

    View full-size slide

  92. @FerPeralesM
    #FSL2019

    View full-size slide

  93. @FerPeralesM
    #FSL2019
    Proveer contexto a los
    traductores

    View full-size slide

  94. @FerPeralesM
    #FSL2019
    read

    View full-size slide

  95. @FerPeralesM
    #FSL2019
    No todos los traductores
    programan

    View full-size slide

  96. @FerPeralesM
    #FSL2019
    No todos los programadores
    traducen

    View full-size slide

  97. @FerPeralesM
    #FSL2019
    Sé tolerante c:

    View full-size slide

  98. @FerPeralesM
    #FSL2019
    Consejos avanzados

    View full-size slide

  99. @FerPeralesM
    #FSL2019
    No omitir estructuras
    gramaticales

    View full-size slide

  100. @FerPeralesM
    #FSL2019
    EN: {adjetivo} {sujeto}
    ES: {sujeto} {adjetivo}

    View full-size slide

  101. @FerPeralesM
    #FSL2019
    Puede haber varios tipos de
    plurales

    View full-size slide

  102. @FerPeralesM
    #FSL2019
    Considera los tamaños de texto

    View full-size slide

  103. @FerPeralesM
    #FSL2019
    w3.org/
    International/articles/article-
    text-size

    View full-size slide

  104. @FerPeralesM
    #FSL2019

    View full-size slide

  105. @FerPeralesM
    #FSL2019
    392 views

    View full-size slide

  106. @FerPeralesM
    #FSL2019
    Idioma Traducción
    Radio
    Coreano ઑഥ 0.8
    Inglés views 1
    Chino 次檢視 1.2
    Portugués visualizações 2.6
    Francés consultations 2.6
    Alemán -mal angesehen 2.8
    Italiano visualizzazioni 3

    View full-size slide

  107. @FerPeralesM
    #FSL2019
    Recursos

    View full-size slide

  108. @FerPeralesM
    #FSL2019
    w3.org/
    International

    View full-size slide

  109. @FerPeralesM
    #FSL2019
    ¿Preguntas?

    View full-size slide

  110. @FerPeralesM
    #FSL2019
    I18n.t('messages.thank_you')
    [email protected]

    View full-size slide