Autore Topic: Appicazione multilingue  (Letto 1169 volte)

Offline sirtraco

  • Utente junior
  • **
  • Post: 92
  • Respect: 0
    • Mostra profilo
Appicazione multilingue
« il: 17 Maggio 2012, 14:11:26 CEST »
0
salve a tutti, devo realizzare una applicazione multilingua utilizzando gnu gettext, qualcuno lo ha mai usato? se si mi potreste spiegare come funziona??
gettext - GNU Project - Free Software Foundation (FSF)

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Appicazione multilingue
« Risposta #1 il: 17 Maggio 2012, 17:00:40 CEST »
0
Gettext è un sistema utilizzato sotto i sistemi operativi POSIX, come un Linux completo, per localizzare i programmi scritti per la linea di comando e per le GTK+ (KDE e X Athena Widgets hanno dei propri sistemi).

Ignoro se qualcuno ha tentato di utilizzarlo sotto Android. Il sistema di installazione delle app di Android non ricreerebbe tutte le directory di localizzazione necessarie per Gettext e bisognerebbe scrivere un wrapper NDK di tutte le chiamata alla libreria.

Android ha un proprio sistema per la localizzazione delle app:

Localization | Android Developers

è sicuramente la scelta migliore per la localizzazione dei propri programmi.
adb logcat | tee /tmp/logcat | grep TAG

Offline sirtraco

  • Utente junior
  • **
  • Post: 92
  • Respect: 0
    • Mostra profilo
Re:Appicazione multilingue
« Risposta #2 il: 17 Maggio 2012, 20:22:49 CEST »
0
Gettext è un sistema utilizzato sotto i sistemi operativi POSIX, come un Linux completo, per localizzare i programmi scritti per la linea di comando e per le GTK+ (KDE e X Athena Widgets hanno dei propri sistemi).

Ignoro se qualcuno ha tentato di utilizzarlo sotto Android. Il sistema di installazione delle app di Android non ricreerebbe tutte le directory di localizzazione necessarie per Gettext e bisognerebbe scrivere un wrapper NDK di tutte le chiamata alla libreria.

Android ha un proprio sistema per la localizzazione delle app:

Localization | Android Developers

è sicuramente la scelta migliore per la localizzazione dei propri programmi.
grazie mille, siccome la mia app prende dati da un db esterno, che anche essso deve essere multilingua, comi suggerisci di impostarlo?

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Appicazione multilingue
« Risposta #3 il: 17 Maggio 2012, 22:47:53 CEST »
0
Domanda troppo generica, dipende cosa deve essere localizzato, se lo schema del DB o i dati del DB o altro.
adb logcat | tee /tmp/logcat | grep TAG

Offline sirtraco

  • Utente junior
  • **
  • Post: 92
  • Respect: 0
    • Mostra profilo
Re:Appicazione multilingue
« Risposta #4 il: 18 Maggio 2012, 09:55:27 CEST »
0
Domanda troppo generica, dipende cosa deve essere localizzato, se lo schema del DB o i dati del DB o altro.
scusa per la risposta generica, comunque i dati del db

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Appicazione multilingue
« Risposta #5 il: 18 Maggio 2012, 17:59:25 CEST »
0
Qui dipende molto dalle proprie conoscenze sui vari argomenti e sui mezzi a disposizione.

Prima di tutto i dati di tipo TEXT o CHAR o VARCHAR (ipotizzo l'uso di un database remoto SQL) devo contenere un set di caratteri internazionale. Io consiglio di usare Unicode con la codifica UTF-8, permette una codifica con un enorme set di caratteri e di avere un giusto compromesso con lo spazio utilizzato e poi in caso di richieste tipo JSON sono già pronti per l'uso.

Le tabelle nel database  devono avere uno schema che preveda una selezione dei dati in base alla localizzazione, qui le cose si complicano, dipende molto dal tipo si server SQL utilizzato e come si descrivere lo schema dei dati, o si utilizzano tabelle con colonne per ogni localizzazione o riferimenti a tabelle con chiavi esterne o altro (basta cercare con Google è un argomento ricorrente).

Per le richieste esterne consiglio di utilizzare un linguaggio per le richieste dinamiche, consiglio il PHP. Sconsiglio un collegamento diretto al DB, per motivi di sicurezza e per flessibilità.

Dal dispositivo Android devono partire le richieste comunicando la localizzazione scelta, di solito si utilizzano 2 caratteri tipo IT per italiano, FR per il francese, ecc... Consiglio di utilizzare il JSON per le richieste allo script PHP il quale dovrà selezionare, se possibile, il dato localizzato e in caso negativo riportare il dato sempre presente in una determinata lingua.


adb logcat | tee /tmp/logcat | grep TAG

Offline sirtraco

  • Utente junior
  • **
  • Post: 92
  • Respect: 0
    • Mostra profilo
Re:Appicazione multilingue
« Risposta #6 il: 05 Giugno 2012, 10:55:25 CEST »
0
Qui dipende molto dalle proprie conoscenze sui vari argomenti e sui mezzi a disposizione.

Prima di tutto i dati di tipo TEXT o CHAR o VARCHAR (ipotizzo l'uso di un database remoto SQL) devo contenere un set di caratteri internazionale. Io consiglio di usare Unicode con la codifica UTF-8, permette una codifica con un enorme set di caratteri e di avere un giusto compromesso con lo spazio utilizzato e poi in caso di richieste tipo JSON sono già pronti per l'uso.

Le tabelle nel database  devono avere uno schema che preveda una selezione dei dati in base alla localizzazione, qui le cose si complicano, dipende molto dal tipo si server SQL utilizzato e come si descrivere lo schema dei dati, o si utilizzano tabelle con colonne per ogni localizzazione o riferimenti a tabelle con chiavi esterne o altro (basta cercare con Google è un argomento ricorrente).

Per le richieste esterne consiglio di utilizzare un linguaggio per le richieste dinamiche, consiglio il PHP. Sconsiglio un collegamento diretto al DB, per motivi di sicurezza e per flessibilità.

Dal dispositivo Android devono partire le richieste comunicando la localizzazione scelta, di solito si utilizzano 2 caratteri tipo IT per italiano, FR per il francese, ecc... Consiglio di utilizzare il JSON per le richieste allo script PHP il quale dovrà selezionare, se possibile, il dato localizzato e in caso negativo riportare il dato sempre presente in una determinata lingua.
scusa se non mi sono fatto più sentire, ti spiego meglio come sono messe le cose, per quanto riguarda il collegamento con il db è tutto apposto nel senso che ho fatto uno script in php allacciato con una classe java che manda query, e il tutto funziona alla perfezione, tornando sul problema principale, ovvero il problema del multilingua, ho strutturato il db nel seguente modo, una tabella "lingua" con id e descrizione lingua, dopodichè per esempio prendiamo la tabella "colori" avrà un id la descrizione e l'id_lingua, però così si ripete diciamo il colore per ogni lingua tipo se "inglese" ha id=1 e "italiano" ha id=2 si avrà
id desc id_lingua:
1 rosso 2
2 red 1
io vorrei trovare un modo diverso migliore di questo hai qualche idea??? spero di essermi fatto capire....

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Appicazione multilingue
« Risposta #7 il: 05 Giugno 2012, 16:29:14 CEST »
0
L'argomento è OT non riguarda strettamente Android. Come ho detto il sistema remoto alla richiesta di dati deve essere furbo, non si devono replicare n volte i dati, ma solo quando esistono e in caso di assenza di una traduzione viene preso il dato in una lingua sempre presente.

Per implementate il sistema dipende dalle proprie capacità e conoscenze, basta cercare, una possibile partenza:

http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/i18n/i18n5.html#1085133
http://www.gsdesign.ro/blog/multilanguage-database-design-approach/
adb logcat | tee /tmp/logcat | grep TAG