xcode - videos - ¿Necesito inglés junto a la localización base que contendría exactamente la misma ''traducción''?
videos de inglés (3)
Además de responder la pregunta sobre qué idioma verán los usuarios finales, también debe considerar qué se mostrará en la AppStore. Mi experiencia actual es que si usa Base para inglés, el inglés no aparecerá en la lista de idiomas admitidos (cómo sabe Apple en qué idioma es su localización básica) en la descripción de su aplicación.
Yo mismo me he encontrado con este problema - base (inglés), alemán y ruso
Los ajustes de destino se refieren a:
Localization native development region = en
Pero en Appstore aparece en esta forma:
Languages: German, Russian
sin referencia al ingles
Considero duplicar la localización base al inglés (no es una prioridad alta, como los usuarios ven en las capturas de pantalla que la aplicación funciona en inglés de todos modos)
Edición: parece que hay un comportamiento diferente en iOS8: la configuración de la aplicación (Settings.bundle) parece ignorar la traducción base, si alguna de las traducciones coincide con su "Orden de idioma preferido".
En otras palabras, la aplicación está localizada: Base, alemán, ruso. El iPhone está configurado para usar inglés, el orden de los idiomas preferidos es inglés, alemán y ruso.
Los ajustes de la aplicación vienen en ... ¡Alemán!
Una vez más: esto se aplica a la configuración, pero no a la aplicación en sí.
Espero que el archivo base contenga mis palabras en inglés ya que mi proyecto tiene "Región de desarrollo nativo de localización" configurado en inglés.
Actualización - para aclarar mi pregunta:
Aunque no estoy completamente seguro de si obtengo esto correctamente, intentaré responder a su pregunta TTBOMK.
Supongamos que está utilizando NSLocalizedString(key, comment)
en su código. Puede ver claramente que el primer argumento es en realidad una clave para una cadena, en lugar de la cadena traducida (o para traducir). Por lo tanto, cuando “escribe código” en realidad no escribe cadenas en el lenguaje base, o en cualquier otro idioma. Debería pensarlo como si estuviera agregando marcadores de posición de cadena en su código.
Más adelante, se supone que debe crear un archivo Localizable.strings
para cada idioma que le gustaría admitir, en forma de key = value;
. Para hacer que su interfaz de usuario aparezca al menos en un lenguaje legible para las personas, debe tener al menos un archivo Localizable.strings
con los valores de cadena adecuados para cada clave de marcador de posición.
Por ejemplo: si tenía NSLocalizedString(@“ConfirmationButtonTitle", @“Yada yada”)
en su código, entonces tiene mucho sentido tener un archivo Localizable.strings
que contenga ”GreenButtonTitle” = “Tap here to confirm”;
elemento en él Si no crea un archivo Localizable.strings
o si ningún archivo Localizable.strings
contiene la clave GreenButtonTitle
, entonces el título del botón retrocede a ConfirmationButtonTitle
, ya que es el nombre de la clave del marcador de posición.
Dicho esto, la mayoría de las personas prefieren nombrar sus claves exactamente como valores de cadena por varias razones. Esta es una práctica conveniente y muy común, pero podría llevar a conflictos en la mente de las personas.
Por lo tanto, si tuviera que crear el ejemplo anterior de NSLocalizedString
como NSLocalizedString(@“Tap here to confirm", @“Yada yada”)
, entonces, su archivo predeterminado / base Localizable.strings
probablemente contendría un elemento como “Tap here to confirm” = “Tap here to confirm”;
.
Lo que sucede aquí no es que te estés repitiendo, sino que estás nombrando tu clave exactamente como el valor de cadena de tu idioma base, eso es todo.
EDITAR
Siempre ha habido un concepto de lenguaje base, pero, según tengo entendido, Xcode 5 enfatiza esto aún más: eso es bueno. Si su idioma base es el inglés, entonces no necesita tener un archivo Localizable.strings
para el inglés, nuevamente.
De acuerdo con la documentation (desplácese hasta Crear archivos de cadenas para texto orientado al usuario en su código ), no debe agregar Localizable.strings
a la localización base. Incluso si su idioma de desarrollo es el inglés, cree una carpeta separada y Localizable.strings
para el inglés. Crea otros para cada idioma adicional que quieras agregar.