diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/ShatteredPixelDungeon.java b/src/com/shatteredpixel/shatteredpixeldungeon/ShatteredPixelDungeon.java
index 163fcd6ec..c6afeada0 100644
--- a/src/com/shatteredpixel/shatteredpixeldungeon/ShatteredPixelDungeon.java
+++ b/src/com/shatteredpixel/shatteredpixeldungeon/ShatteredPixelDungeon.java
@@ -26,10 +26,10 @@ import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
-import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
+import com.shatteredpixel.shatteredpixeldungeon.messages.Languages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
-import com.shatteredpixel.shatteredpixeldungeon.scenes.TitleScene;
+import com.shatteredpixel.shatteredpixeldungeon.scenes.WelcomeScene;
import com.watabou.noosa.Game;
import com.watabou.noosa.audio.Music;
import com.watabou.noosa.audio.Sample;
@@ -340,20 +340,20 @@ public class ShatteredPixelDungeon extends Game {
return Preferences.INSTANCE.getInt( Preferences.KEY_BRIGHTNESS, 0 );
}
- public static void language(Messages.Languages lang) {
+ public static void language(Languages lang) {
Preferences.INSTANCE.put( Preferences.KEY_LANG, lang.code());
}
- public static Messages.Languages language() {
+ public static Languages language() {
String code = Preferences.INSTANCE.getString(Preferences.KEY_LANG, null);
if (code == null){
- Messages.Languages lang = Messages.Languages.matchLocale(Locale.getDefault());
- if (lang.status() == Messages.Languages.Status.REVIEWED)
+ Languages lang = Languages.matchLocale(Locale.getDefault());
+ if (lang.status() == Languages.Status.REVIEWED)
return lang;
else
- return Messages.Languages.ENGLISH;
+ return Languages.ENGLISH;
}
- else return Messages.Languages.matchCode(code);
+ else return Languages.matchCode(code);
}
public static void lastClass( int value ) {
diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/messages/Languages.java b/src/com/shatteredpixel/shatteredpixeldungeon/messages/Languages.java
new file mode 100644
index 000000000..b90341c0c
--- /dev/null
+++ b/src/com/shatteredpixel/shatteredpixeldungeon/messages/Languages.java
@@ -0,0 +1,83 @@
+/*
+ * Pixel Dungeon
+ * Copyright (C) 2012-2015 Oleg Dolya
+ *
+ * Shattered Pixel Dungeon
+ * Copyright (C) 2014-2015 Evan Debenham
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see
+ */
+package com.shatteredpixel.shatteredpixeldungeon.messages;
+
+import java.util.Locale;
+
+public enum Languages {
+ ENGLISH("english", "", Status.REVIEWED, null, null),
+ RUSSIAN("русский", "ru", Status.REVIEWED, new String[]{"ConsideredHamster", "Inevielle", "Yarikonline"}, new String[]{"HerrGotlieb", "Shamahan"}),
+ KOREAN("한국어", "ko", Status.REVIEWED, new String[]{"Flameblast12"}, new String[]{"Ddojin0115", "Eeeei", "lsiebnie", "WondarRabb1t"}),
+
+ CHINESE("中文", "zh", Status.UNREVIEWED, null, null), //Simplified
+ PORTUGUESE("português", "pt", Status.UNREVIEWED, null, null), //Brazillian
+
+ GERMAN("deutsch", "de", Status.INCOMPLETE, null, null),
+ POLISH("polski", "pl", Status.INCOMPLETE, null, null),
+ SPANISH("español", "es", Status.INCOMPLETE, null, null),
+ FRENCH("français", "fr", Status.INCOMPLETE, null, null);
+
+ public enum Status{
+ //below 60% complete languages are not added.
+ INCOMPLETE, //60-99% complete
+ UNREVIEWED, //100% complete
+ REVIEWED //100% reviewed
+ }
+
+ private String name;
+ private String code;
+ private Status status;
+ private String[] reviewers;
+ private String[] translators;
+
+ Languages(String name, String code, Status status, String[] reviewers, String[] translators){
+ this.name = name;
+ this.code = code;
+ this.status = status;
+ this.reviewers = reviewers;
+ this.translators = translators;
+ }
+
+ public String nativeName(){
+ return name;
+ }
+
+ public String code(){
+ return code;
+ }
+
+ public Status status(){
+ return status;
+ }
+
+ public static Languages matchLocale(Locale locale){
+ return matchCode(locale.getLanguage());
+ }
+
+ public static Languages matchCode(String code){
+ for (Languages lang : Languages.values()){
+ if (lang.code().equals(code))
+ return lang;
+ }
+ return ENGLISH;
+ }
+
+}
diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/messages/Messages.java b/src/com/shatteredpixel/shatteredpixeldungeon/messages/Messages.java
index 4f19f2041..16700df94 100644
--- a/src/com/shatteredpixel/shatteredpixeldungeon/messages/Messages.java
+++ b/src/com/shatteredpixel/shatteredpixeldungeon/messages/Messages.java
@@ -38,63 +38,6 @@ import java.util.ResourceBundle;
*/
public class Messages {
- public enum Languages {
- ENGLISH("english", "", Status.REVIEWED),
- RUSSIAN("русский", "ru", Status.REVIEWED),
- KOREAN("한국어", "ko", Status.REVIEWED),
-
- CHINESE("中文", "zh", Status.UNREVIEWED), //Simplified
- PORTUGUESE("português", "pt", Status.UNREVIEWED), //Brazillian
-
- GERMAN("deutsch", "de", Status.INCOMPLETE),
- POLISH("polski", "pl", Status.INCOMPLETE),
- SPANISH("español", "es", Status.INCOMPLETE),
- FRENCH("français", "fr", Status.INCOMPLETE);
-
- private String name;
- private String code;
- private Status status;
-
- Languages(String name, String code, Status status){
- this.name = name;
- this.code = code;
- this.status = status;
- }
-
- public String nativeName(){
- return name;
- }
-
- public String code(){
- return code;
- }
-
- public Status status(){
- return status;
- }
-
- public static Languages matchLocale(Locale locale){
- return matchCode(locale.getLanguage());
- }
-
- public static Languages matchCode(String code){
- for (Languages lang : Languages.values()){
- if (lang.code().equals(code))
- return lang;
- }
- return ENGLISH;
- }
-
- public enum Status{
- //below 60% complete languages are not added.
- INCOMPLETE, //60-99% complete
- UNREVIEWED, //100% complete
- REVIEWED //100% reviewed
- }
-
- }
-
-
/*
use hashmap for two reasons. Firstly because android 2.2 doesn't support resourcebundle.containskey(),
secondly so I can read in and combine multiple properties files,
diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndLangs.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndLangs.java
index 2eb197c79..d2bd9f2e9 100644
--- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndLangs.java
+++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndLangs.java
@@ -20,20 +20,16 @@
*/
package com.shatteredpixel.shatteredpixeldungeon.windows;
-import android.content.Intent;
-import android.net.Uri;
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
+import com.shatteredpixel.shatteredpixeldungeon.messages.Languages;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
import com.shatteredpixel.shatteredpixeldungeon.scenes.TitleScene;
import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton;
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
-import com.watabou.input.Touchscreen;
import com.watabou.noosa.ColorBlock;
-import com.watabou.noosa.Game;
import com.watabou.noosa.RenderedText;
import com.watabou.noosa.RenderedTextMultiline;
-import com.watabou.noosa.TouchArea;
import java.util.ArrayList;
import java.util.Arrays;
@@ -51,9 +47,9 @@ public class WndLangs extends Window {
public WndLangs(){
super();
- final ArrayList langs = new ArrayList<>(Arrays.asList(Messages.Languages.values()));
+ final ArrayList langs = new ArrayList<>(Arrays.asList(Languages.values()));
- Messages.Languages nativeLang = Messages.Languages.matchLocale(Locale.getDefault());
+ Languages nativeLang = Languages.matchLocale(Locale.getDefault());
langs.remove(nativeLang);
//move the native language to the top.
langs.add(0, nativeLang);
@@ -104,40 +100,41 @@ public class WndLangs extends Window {
title.hardlight(TITLE_COLOR);
add(title);
- RenderedTextMultiline info = PixelScene.renderMultiline( 6 );
- switch(Messages.lang().status()){
- case REVIEWED:
- info.text(Messages.get(this, "completed"), WIDTH-TEXT_LEFT);
- break;
- case UNREVIEWED:
- info.text(Messages.get(this, "unreviewed"), WIDTH-TEXT_LEFT);
- break;
- case INCOMPLETE:
- info.text(Messages.get(this, "unfinished"), WIDTH-TEXT_LEFT);
- break;
- }
- info.setPos(TEXT_LEFT, title.height() + 2);
- add(info);
+ if (Messages.lang() == Languages.ENGLISH){
- RedButton creditsBtn = new RedButton(Messages.titleCase(Messages.get(this, "credits")));
- creditsBtn.setSize(creditsBtn.reqWidth()+2, 16);
- creditsBtn.setPos(TEXT_LEFT + (TEXT_WIDTH - creditsBtn.width())/2f, y - 18);
- add(creditsBtn);
+ RenderedTextMultiline info = PixelScene.renderMultiline(6);
+ info.text("This is the source language, written by the developer.", WIDTH - TEXT_LEFT);
+ info.setPos(TEXT_LEFT, title.height() + 2);
+ add(info);
- RenderedTextMultiline transifex_text = PixelScene.renderMultiline(6);
- transifex_text.text(Messages.get(this, "transifex"), WIDTH-TEXT_LEFT);
- transifex_text.setPos(TEXT_LEFT, creditsBtn.top() - 2 - transifex_text.height());
- add(transifex_text);
+ } else {
- TouchArea transifex_link = new TouchArea(transifex_text.left(), transifex_text.top(),
- transifex_text.width(), transifex_text.height()){
- @Override
- protected void onClick(Touchscreen.Touch touch) {
- Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse( "http://www.transifex.com/shattered-pixel/shattered-pixel-dungeon/" ) );
- Game.instance.startActivity( intent );
+ RenderedTextMultiline info = PixelScene.renderMultiline(6);
+ switch (Messages.lang().status()) {
+ case REVIEWED:
+ info.text(Messages.get(this, "completed"), WIDTH - TEXT_LEFT);
+ break;
+ case UNREVIEWED:
+ info.text(Messages.get(this, "unreviewed"), WIDTH - TEXT_LEFT);
+ break;
+ case INCOMPLETE:
+ info.text(Messages.get(this, "unfinished"), WIDTH - TEXT_LEFT);
+ break;
}
- };
- add(transifex_link);
+ info.setPos(TEXT_LEFT, title.height() + 2);
+ add(info);
+
+ RedButton creditsBtn = new RedButton(Messages.titleCase(Messages.get(this, "credits")));
+ creditsBtn.setSize(creditsBtn.reqWidth() + 2, 16);
+ creditsBtn.setPos(TEXT_LEFT + (TEXT_WIDTH - creditsBtn.width()) / 2f, y - 18);
+ add(creditsBtn);
+
+ RenderedTextMultiline transifex_text = PixelScene.renderMultiline(6);
+ transifex_text.text(Messages.get(this, "transifex"), WIDTH - TEXT_LEFT);
+ transifex_text.setPos(TEXT_LEFT, creditsBtn.top() - 2 - transifex_text.height());
+ add(transifex_text);
+
+ }
}