umschaltbare Sprache

  • Antworten:6
Peter Panne
  • Forum-Beiträge: 7

14.05.2013, 13:38:34 via Website

Hallo zusammen,

ich möchte meine App mehrsprachig gestalten, sodass man die Sprache in der Applikation umschalten kann (z.B. unter Einstellungen). Ich habe nun schon auf der Android Developer Seite unter dem Abschnitt "Localiziation" einiges gefundes. So soll man mehrere "Values-Ordner" anlegen, z.B. values-de, values-pl etc. Die richtige strings.xml wird dann je nach Spracheinstellung des Smartphones herausgesucht.

Ich suche jetzt nach einer Möglichkeit dies manuell zu machen. Gehen wir von dem Fall aus, dass ich in meiner Main-Activity zwei Button habe, z.B. "Deutsch" und "Polnisch". Beim Klick auf "Deutsch" soll Android die strings.xml aus dem Ordner values-de laden und beim Klick auf "Polnisch" entsprechend analog. Wie mache ich das?

Danke:-)

Grüße
Peter

Antworten
Peter Panne
  • Forum-Beiträge: 7

14.05.2013, 17:09:09 via Website

Also ich habe jetzt schon folgende Zeilen im Netz gefunden:

1locale = new Locale("de");
2Locale.setDefault(locale);
3config = new Configuration();
4config.locale = locale;
5getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());

Allerdings läuft das bei mir nicht. Kein Fehler, aber auch keine Funktion. Es bleibt alles beim Alten.

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

14.05.2013, 17:31:42 via Website

wieso arbeitest du gegen das system ? lege die resoucen an und androids runtime macht den rest.

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Peter Panne
  • Forum-Beiträge: 7

14.05.2013, 17:40:13 via Website

Mein Ziel ist doch nicht gegen das System zu arbeiten, sondern dem Nutzer die Entscheidung zu überlassen in welcher Sprache er meine App betrachten möchte, unabhängig von seinen eigenen Systemeinstellungen. Dafür suche ich eine Lösung;-)

Antworten
impjor
  • Forum-Beiträge: 1.793

14.05.2013, 17:47:21 via Website

Peter Panne
Mein Ziel ist doch nicht gegen das System zu arbeiten
Tust du aber :D
Peter Panne
dem Nutzer die Entscheidung zu überlassen in welcher Sprache er meine App betrachten möchte
Dies kann er mit seiner System-Einstellung doch genau tun :) Ich Als User würde mich total ärgern, wenn ich jedesmal meine Sprache bei allen Apps einstellen müsste.

Du kannst auch einen values -Ordner anlegen (ohne -de, -en, ...) welcher genutzt wird, wenn deine App die Sprache nicht supportet.

Gruß

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

14.05.2013, 17:50:40 via Website

Dann müsste ja jeder genau das lösen, besser oder schlechter wie er kann. Du solltest mehr das Design des Systems verstehen lernen.
Wenn das nämlich Thema wäre würde jeder 3te Blog irgendwie darüber schreiben :)

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Michael H
  • Forum-Beiträge: 127

15.05.2013, 08:45:55 via Website

Es ist sicher sinnvoll die vorgegebenen todos und frameworks welche vom Hause Android kommen zu verwenden. Ich würde dir das, wie viele andere hier drinn auch ans Herz legen... impjor hats auf den Punkt gebracht - Wie mühsam es doch wäre in jeder App die eigene Sprache immer manuell einstellen zu müssen.

Zu deinem Problem:
Wenn du es doch nach deinem Vorhaben machen willst, würde ich eine "String-Converter" Klasse schreiben, welche je nach Einstellung immer den String in der richtigen Sprache aus dem values Ordner rauspickt und zurückgibt. (statische Klasse) Die Strings würde ich alle im values-Ordner speichern und z.B. mit Kommentaren die Sprachen visuell abgrenzen. So hast du eine halbwegs saubere Lösung, und der Pflegeaufwand ist auch zu ertragen..

Viel Spass... :)

Antworten