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 Slide

  2. @FerPeralesM
    #FSL2019

    View 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 Slide

  4. @FerPeralesM
    #FSL2019

    View Slide

  5. @FerPeralesM
    #FSL2019
    i18n

    View Slide

  6. @FerPeralesM
    #FSL2019
    i18n
    internationalization

    View Slide

  7. @FerPeralesM
    #FSL2019
    Numerónimo

    View Slide

  8. @FerPeralesM
    #FSL2019
    salu2

    View Slide

  9. @FerPeralesM
    #FSL2019
    911

    View Slide

  10. @FerPeralesM
    #FSL2019
    101

    View Slide

  11. @FerPeralesM
    #FSL2019
    CR7

    View Slide

  12. @FerPeralesM
    #FSL2019
    G20

    View Slide

  13. @FerPeralesM
    #FSL2019
    k8s
    kubernetes

    View Slide

  14. @FerPeralesM
    #FSL2019
    a11y
    accessibility

    View Slide

  15. @FerPeralesM
    #FSL2019
    p45s

    View Slide

  16. @FerPeralesM
    #FSL2019
    Pneumonoultramicroscopicsilicovolcanoconiosis

    View Slide

  17. @FerPeralesM
    #FSL2019
    i18n
    internationalization

    View 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 Slide

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

    View Slide

  20. @FerPeralesM
    #FSL2019
    Varios idiomas

    View Slide

  21. @FerPeralesM
    #FSL2019
    Convenciones culturales

    View Slide

  22. @FerPeralesM
    #FSL2019
    Zonas horarias

    View Slide

  23. @FerPeralesM
    #FSL2019
    Formato de hora

    View Slide

  24. @FerPeralesM
    #FSL2019
    Formato de fecha

    View Slide

  25. @FerPeralesM
    #FSL2019
    Monedas internacionales

    View Slide

  26. @FerPeralesM
    #FSL2019
    Sistemas de peso y medidas

    View Slide

  27. @FerPeralesM
    #FSL2019
    Códigos de caracteres

    View Slide

  28. @FerPeralesM
    #FSL2019
    Formatos de números

    View Slide

  29. @FerPeralesM
    #FSL2019
    1400

    View Slide

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

    View Slide

  31. @FerPeralesM
    #FSL2019
    Somos muchos en el mundo

    View Slide

  32. @FerPeralesM
    #FSL2019
    worldometers.info

    View Slide

  33. @FerPeralesM
    #FSL2019

    View Slide

  34. @FerPeralesM
    #FSL2019
    Y hablamos diferentes
    lenguajes

    View Slide

  35. @FerPeralesM
    #FSL2019
    bbc.co.uk

    View 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 Slide

  37. @FerPeralesM
    #FSL2019
    Y diferentes variantes
    regionales

    View Slide

  38. @FerPeralesM
    #FSL2019
    !

    View Slide

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

    View Slide

  40. @FerPeralesM
    #FSL2019

    View Slide

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

    View Slide

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

    View Slide

  43. @FerPeralesM
    #FSL2019

    View Slide

  44. @FerPeralesM
    #FSL2019

    View Slide

  45. @FerPeralesM
    #FSL2019

    View Slide

  46. @FerPeralesM
    #FSL2019
    "

    View Slide

  47. @FerPeralesM
    #FSL2019
    Trivia

    View Slide

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

    View Slide

  49. @FerPeralesM
    #FSL2019
    5%

    View Slide

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

    View Slide

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

    View Slide

  52. @FerPeralesM
    #FSL2019
    Tipo de proyecto

    View Slide

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

    View Slide

  54. @FerPeralesM
    #FSL2019
    Contenido generado por
    humanos

    View Slide

  55. @FerPeralesM
    #FSL2019
    ruby-lang.org

    View Slide

  56. @FerPeralesM
    #FSL2019

    View Slide

  57. @FerPeralesM
    #FSL2019

    View Slide

  58. @FerPeralesM
    #FSL2019
    docs.railsbridge.org

    View Slide

  59. @FerPeralesM
    #FSL2019

    View Slide

  60. @FerPeralesM
    #FSL2019

    View Slide

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

    View Slide

  62. @FerPeralesM
    #FSL2019
    spreecommerce.org

    View Slide

  63. @FerPeralesM
    #FSL2019

    View Slide

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

    View Slide

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

    View Slide

  66. @FerPeralesM
    #FSL2019
    Estructura de directorios

    View Slide

  67. @FerPeralesM
    #FSL2019
    ruby-lang.org

    View Slide

  68. @FerPeralesM
    #FSL2019

    View Slide

  69. @FerPeralesM
    #FSL2019
    docs.railsbridge.org

    View Slide

  70. @FerPeralesM
    #FSL2019

    View Slide

  71. @FerPeralesM
    #FSL2019

    View Slide

  72. @FerPeralesM
    #FSL2019

    View Slide

  73. @FerPeralesM
    #FSL2019
    Archivos

    View Slide

  74. @FerPeralesM
    #FSL2019
    es.yml

    View Slide

  75. @FerPeralesM
    #FSL2019

    View Slide

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

    View Slide

  77. @FerPeralesM
    #FSL2019
    ruby-lang.org

    View Slide

  78. @FerPeralesM
    #FSL2019

    View Slide

  79. @FerPeralesM
    #FSL2019

    View Slide

  80. @FerPeralesM
    #FSL2019
    docs.railsbridge.org

    View Slide

  81. @FerPeralesM
    #FSL2019

    View Slide

  82. @FerPeralesM
    #FSL2019
    Traducciones en servicios

    View Slide

  83. @FerPeralesM
    #FSL2019
    transifex.com

    View Slide

  84. @FerPeralesM
    #FSL2019
    Consejos generales

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  89. @FerPeralesM
    #FSL2019

    View Slide

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

    View Slide

  91. @FerPeralesM
    #FSL2019

    View Slide

  92. @FerPeralesM
    #FSL2019

    View Slide

  93. @FerPeralesM
    #FSL2019
    Proveer contexto a los
    traductores

    View Slide

  94. @FerPeralesM
    #FSL2019
    read

    View Slide

  95. @FerPeralesM
    #FSL2019
    No todos los traductores
    programan

    View Slide

  96. @FerPeralesM
    #FSL2019
    No todos los programadores
    traducen

    View Slide

  97. @FerPeralesM
    #FSL2019
    Sé tolerante c:

    View Slide

  98. @FerPeralesM
    #FSL2019
    Consejos avanzados

    View Slide

  99. @FerPeralesM
    #FSL2019
    No omitir estructuras
    gramaticales

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  104. @FerPeralesM
    #FSL2019

    View Slide

  105. @FerPeralesM
    #FSL2019
    392 views

    View 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 Slide

  107. @FerPeralesM
    #FSL2019
    Recursos

    View Slide

  108. @FerPeralesM
    #FSL2019
    w3.org/
    International

    View Slide

  109. @FerPeralesM
    #FSL2019
    ¿Preguntas?

    View Slide

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

    View Slide