From 3697dd51a4afbd066401acff60f7399ed3685735 Mon Sep 17 00:00:00 2001 From: Vlad Mihalachi Date: Thu, 31 Oct 2013 14:46:59 +0100 Subject: [PATCH] Eventbus now is build with gradle Various optimization --- Turbo Editor/build.gradle | 11 +- Turbo Editor/libs/eventbus-2.0.2.jar | Bin 22493 -> 0 bytes Turbo Editor/src/main/AndroidManifest.xml | 6 +- .../turboeditor/fragment/EditorFragment.java | 86 ++++++------ .../NavigationDrawerListFragment.java | 1 + .../fragment/SeekbarDialogFragment.java | 2 +- .../turboeditor/helper/PreferenceHelper.java | 8 +- .../src/main/res/layout/fragment_editor.xml | 16 ++- .../src/main/res/menu/fragment_editor.xml | 6 +- Turbo Editor/src/main/res/raw/changelog.xml | 6 + .../src/main/res/values-de-rDE/strings.xml | 24 ++-- .../src/main/res/values-el-rGR/strings.xml | 6 +- .../src/main/res/values-es-rES/strings.xml | 122 ++++++++++++++++++ .../values-es-rES/strings_aboutactivity.xml | 41 ++++++ .../src/main/res/values-fi-rFI/strings.xml | 122 ++++++++++++++++++ .../values-fi-rFI/strings_aboutactivity.xml | 41 ++++++ .../src/main/res/values-ms-rMY/strings.xml | 6 +- .../src/main/res/values-nl-rNL/strings.xml | 10 +- .../src/main/res/values-pl-rPL/strings.xml | 10 +- .../src/main/res/values-pt-rBR/strings.xml | 6 +- .../src/main/res/values-ru-rRU/strings.xml | 6 +- Turbo Editor/src/main/res/values/ids.xml | 2 +- Turbo Editor/src/main/res/values/strings.xml | 15 +-- gradle/wrapper/gradle-wrapper.jar | Bin 50518 -> 50514 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- 25 files changed, 444 insertions(+), 113 deletions(-) delete mode 100644 Turbo Editor/libs/eventbus-2.0.2.jar create mode 100644 Turbo Editor/src/main/res/values-es-rES/strings.xml create mode 100644 Turbo Editor/src/main/res/values-es-rES/strings_aboutactivity.xml create mode 100644 Turbo Editor/src/main/res/values-fi-rFI/strings.xml create mode 100644 Turbo Editor/src/main/res/values-fi-rFI/strings_aboutactivity.xml diff --git a/Turbo Editor/build.gradle b/Turbo Editor/build.gradle index 92114cb..c389acc 100644 --- a/Turbo Editor/build.gradle +++ b/Turbo Editor/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:0.5.+' + classpath 'com.android.tools.build:gradle:0.6.+' } } apply plugin: 'android' @@ -17,14 +17,15 @@ android { buildToolsVersion "18.1.0" defaultConfig { - minSdkVersion 14 - targetSdkVersion 18 + minSdkVersion 15 } } dependencies { compile 'com.github.gabrielemariotti.changeloglib:library:1.2.0' + compile 'commons-io:commons-io:2.4' compile 'com.android.support:support-v13:18.0.0' - compile "commons-io:commons-io:2.4" - compile fileTree(dir: 'libs', include: '*.jar') + compile ('de.greenrobot:eventbus:2.1.0-beta-1') { + exclude module: 'support-v4' + } } diff --git a/Turbo Editor/libs/eventbus-2.0.2.jar b/Turbo Editor/libs/eventbus-2.0.2.jar deleted file mode 100644 index 183228f91c305fc64dca1dedd6f42c50fc0fd796..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22493 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

U@$7L%(22fvAVQ&1=p=bG;bAN(4GrU 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 diff --git a/Turbo Editor/src/main/AndroidManifest.xml b/Turbo Editor/src/main/AndroidManifest.xml index 62520f4..14c8b02 100644 --- a/Turbo Editor/src/main/AndroidManifest.xml +++ b/Turbo Editor/src/main/AndroidManifest.xml @@ -20,12 +20,12 @@ diff --git a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/EditorFragment.java b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/EditorFragment.java index 863d85c..c714e61 100644 --- a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/EditorFragment.java +++ b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/EditorFragment.java @@ -75,7 +75,7 @@ public class EditorFragment extends Fragment implements EditDialogFragment.EditD private Editor mEditor; // Editor Variables - static boolean sWrapText; + static boolean sLineNumbers; static boolean sColorSyntax; static int sFontSize; // @@ -104,7 +104,7 @@ public class EditorFragment extends Fragment implements EditDialogFragment.EditD this.mCurrentEncoding = PreferenceHelper.getEncoding(getActivity()); this.mUseMonospace = PreferenceHelper.getUseMonospace(getActivity()); this.sColorSyntax = PreferenceHelper.getSyntaxHiglight(getActivity()); - this.sWrapText = PreferenceHelper.getWrapText(getActivity()); + this.sLineNumbers = PreferenceHelper.getLineNumbers(getActivity()); this.sFontSize = PreferenceHelper.getFontSize(getActivity()); } @@ -116,8 +116,7 @@ public class EditorFragment extends Fragment implements EditDialogFragment.EditD public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_editor, container, false); mEditor = (Editor) rootView.findViewById(R.id.editor); - mEditor.setHorizontallyScrolling(!this.sWrapText); - if (!this.sWrapText) { + if (this.sLineNumbers) { int paddingLeft = (int) PixelDipConverter.convertDpToPixel(sFontSize * 1.5f, getActivity()); mEditor.setPadding(paddingLeft, 0, 0, 0); } else { @@ -159,7 +158,7 @@ public class EditorFragment extends Fragment implements EditDialogFragment.EditD @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.fragment_editor, menu); - menu.findItem(R.id.im_wrap_text).setChecked(this.sWrapText); + menu.findItem(R.id.im_line_numbers).setChecked(this.sLineNumbers); menu.findItem(R.id.im_syntax_highlight).setChecked(this.sColorSyntax); menu.findItem(R.id.im_use_monospace).setChecked(this.mUseMonospace); super.onCreateOptionsMenu(menu, inflater); @@ -195,9 +194,9 @@ public class EditorFragment extends Fragment implements EditDialogFragment.EditD item.setChecked(!item.isChecked()); PreferenceHelper.setSyntaxHiglight(getActivity(), item.isChecked()); updateTextEditor(); - } else if (i == R.id.im_wrap_text) { + } else if (i == R.id.im_line_numbers) { item.setChecked(!item.isChecked()); - PreferenceHelper.setWrapText(getActivity(), item.isChecked()); + PreferenceHelper.setLineNumbers(getActivity(), item.isChecked()); updateTextEditor(); } else if (i == R.id.im_use_monospace) { item.setChecked(!item.isChecked()); @@ -228,17 +227,16 @@ public class EditorFragment extends Fragment implements EditDialogFragment.EditD } private void updateTextEditor() { - final boolean wrapText = PreferenceHelper.getWrapText(getActivity()); + final boolean wrapText = PreferenceHelper.getLineNumbers(getActivity()); final boolean syntaxHighlight = PreferenceHelper.getSyntaxHiglight(getActivity()); final boolean useMonospace = PreferenceHelper.getUseMonospace(getActivity()); final String encoding = PreferenceHelper.getEncoding(getActivity()); final int fontSize = PreferenceHelper.getFontSize(getActivity()); - if (this.sWrapText != wrapText) { - this.sWrapText = wrapText; + if (this.sLineNumbers != wrapText) { + this.sLineNumbers = wrapText; this.mEditor.setText(this.mEditor.getText().toString()); - this.mEditor.setHorizontallyScrolling(!this.sWrapText); - if (!this.sWrapText) { + if (this.sLineNumbers) { int paddingLeft = (int) PixelDipConverter.convertDpToPixel(sFontSize * 1.5f, getActivity()); mEditor.setPadding(paddingLeft, 0, 0, 0); } else { @@ -311,15 +309,11 @@ public class EditorFragment extends Fragment implements EditDialogFragment.EditD ID_PASTE = android.R.id.paste, ID_UNDO = R.id.im_undo, ID_REDO = R.id.im_redo; - private static final int SYNTAX_DELAY_MILLIS = - 0; - private final Handler updateHandler = - new Handler(); - private final TextPaint mPaintNumbers = - new TextPaint(); - //private final Rect mLineBounds = new Rect(); - private final float mScale; + private static final int SYNTAX_DELAY_MILLIS = 800; + private final Handler updateHandler = new Handler(); + private final TextPaint mPaintNumbers = new TextPaint(); private boolean modified = true; + private boolean firstTimeColoring = true; /** * Is undo/redo being performed? This member @@ -348,31 +342,23 @@ public class EditorFragment extends Fragment implements EditDialogFragment.EditD */ @Override public void run() { - replaceTextKeepCursor(getText()); + replaceTextKeepCursor(getText()); } }; public Editor(Context context, AttributeSet attrs) { super(context, attrs); - this.mScale = context.getResources() - .getDisplayMetrics().density; init(); } // Init the class private void init() { mEditHistory = new EditHistory(); - mChangeListener = - new EditTextChangeListener(); + mChangeListener = new EditTextChangeListener(); addTextChangedListener(mChangeListener); - this.mPaintNumbers - .setColor( - getTextColors().getDefaultColor()); - this.mPaintNumbers - .setTextSize( - sFontSize); + this.mPaintNumbers.setColor(getTextColors().getDefaultColor()); this.mPaintNumbers.setAntiAlias(true); // Syntax editor @@ -407,7 +393,8 @@ public class EditorFragment extends Fragment implements EditDialogFragment.EditD @Override public void setTextSize(float size) { super.setTextSize(size); - this.mPaintNumbers.setTextSize(sFontSize); + final float scale = getContext().getResources().getDisplayMetrics().density; + this.mPaintNumbers.setTextSize((int) (size * scale * 0.5f)); } /** @@ -463,7 +450,7 @@ public class EditorFragment extends Fragment implements EditDialogFragment.EditD */ @Override public void onDraw(final Canvas canvas) { - if (!EditorFragment.sWrapText) { + if (EditorFragment.sLineNumbers) { final int max = getLineCount(); final TextPaint paint = mPaintNumbers; for (int min = 0; min < max; min++) { @@ -559,22 +546,19 @@ public class EditorFragment extends Fragment implements EditDialogFragment.EditD private void replaceTextKeepCursor( Editable e) { int p = getSelectionStart(); + disconnect(); + modified = false; - replaceText(e); + setText(highlight(e)); + + modified = true; + addTextChangedListener(mChangeListener); if (p > -1) { setSelection(p); } } - private void replaceText(Editable e) { - disconnect(); - modified = false; - setText(highlight(e)); - modified = true; - addTextChangedListener(mChangeListener); - } - private CharSequence highlight(Editable editable) { final String fileExtension = FilenameUtils.getExtension(EditorFragment.sFilePath); editable.clearSpans(); @@ -599,6 +583,13 @@ public class EditorFragment extends Fragment implements EditDialogFragment.EditD color(Patterns.GENERAL_KEYWORDS, editable); color(Patterns.NUMBERS, editable); color(Patterns.GENERAL_COMMENTS, editable); + } else if (fileExtension.equals("php")){ + color(Patterns.HTML_OPEN_TAGS, editable); + color(Patterns.HTML_CLOSE_TAGS, editable); + color(Patterns.HTML_ATTRS, editable); + color(Patterns.GENERAL_KEYWORDS, editable); + color(Patterns.NUMBERS, editable); + color(Patterns.GENERAL_COMMENTS, editable); } else { color(Patterns.GENERAL_KEYWORDS, editable); color(Patterns.NUMBERS, editable); @@ -1035,10 +1026,13 @@ public class EditorFragment extends Fragment implements EditDialogFragment.EditD if (!EditorFragment.sColorSyntax || !modified) { return; } - - updateHandler.postDelayed( - updateRunnable, - SYNTAX_DELAY_MILLIS); + if(firstTimeColoring){ + firstTimeColoring = false; + updateHandler.post(updateRunnable); + } else { + updateHandler.removeCallbacks(updateRunnable); + updateHandler.postDelayed(updateRunnable, SYNTAX_DELAY_MILLIS); + } } } } diff --git a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/NavigationDrawerListFragment.java b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/NavigationDrawerListFragment.java index 2af0c14..d3dd7d9 100644 --- a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/NavigationDrawerListFragment.java +++ b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/NavigationDrawerListFragment.java @@ -46,6 +46,7 @@ import java.util.List; import de.greenrobot.event.EventBus; + public class NavigationDrawerListFragment extends ListFragment implements AbsListView.MultiChoiceModeListener { private List fileNames; diff --git a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/SeekbarDialogFragment.java b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/SeekbarDialogFragment.java index 62c7b17..04e70d5 100644 --- a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/SeekbarDialogFragment.java +++ b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/SeekbarDialogFragment.java @@ -57,7 +57,7 @@ public class SeekbarDialogFragment extends DialogFragment { final String title; switch (action) { case FileSize: - title = getString(R.string.text_size); + title = getString(R.string.font_size); break; default: title = null; diff --git a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/helper/PreferenceHelper.java b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/helper/PreferenceHelper.java index ca615db..7a3bca0 100644 --- a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/helper/PreferenceHelper.java +++ b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/helper/PreferenceHelper.java @@ -45,8 +45,8 @@ public final class PreferenceHelper { return getPrefs(context).getBoolean("use_monospace", false); } - public static boolean getWrapText(Context context) { - return getPrefs(context).getBoolean("editor_wrap_text", true); + public static boolean getLineNumbers(Context context) { + return getPrefs(context).getBoolean("editor_line_numbers", true); } public static boolean getSyntaxHiglight(Context context) { @@ -75,8 +75,8 @@ public final class PreferenceHelper { getEditor(context).putBoolean("use_monospace", value).commit(); } - public static void setWrapText(Context context, boolean value) { - getEditor(context).putBoolean("editor_wrap_text", value).commit(); + public static void setLineNumbers(Context context, boolean value) { + getEditor(context).putBoolean("editor_line_numbers", value).commit(); } public static void setSyntaxHiglight(Context context, boolean value) { diff --git a/Turbo Editor/src/main/res/layout/fragment_editor.xml b/Turbo Editor/src/main/res/layout/fragment_editor.xml index d4edf33..732a3b6 100644 --- a/Turbo Editor/src/main/res/layout/fragment_editor.xml +++ b/Turbo Editor/src/main/res/layout/fragment_editor.xml @@ -24,18 +24,22 @@ android:scrollbars="vertical" android:fillViewport="true"> + + - - + + diff --git a/Turbo Editor/src/main/res/menu/fragment_editor.xml b/Turbo Editor/src/main/res/menu/fragment_editor.xml index e167ea6..04d5dc2 100644 --- a/Turbo Editor/src/main/res/menu/fragment_editor.xml +++ b/Turbo Editor/src/main/res/menu/fragment_editor.xml @@ -41,9 +41,9 @@ android:showAsAction="ifRoom|withText">

+ android:title="@string/font_size"/> diff --git a/Turbo Editor/src/main/res/raw/changelog.xml b/Turbo Editor/src/main/res/raw/changelog.xml index cd08156..f34b152 100644 --- a/Turbo Editor/src/main/res/raw/changelog.xml +++ b/Turbo Editor/src/main/res/raw/changelog.xml @@ -1,6 +1,12 @@ + + Various optimizations + Fixed some bugs + [b]Note[/b] in the future will add better syntax support + + Now you can change the font size diff --git a/Turbo Editor/src/main/res/values-de-rDE/strings.xml b/Turbo Editor/src/main/res/values-de-rDE/strings.xml index 96c2212..fd3ae7a 100644 --- a/Turbo Editor/src/main/res/values-de-rDE/strings.xml +++ b/Turbo Editor/src/main/res/values-de-rDE/strings.xml @@ -34,7 +34,7 @@ Passiver Modus Passphrase Kennwort - Leave it empty to prompt for it every session + Leer lassen, um die Eingabe für jede Sitzung zu veranlassen Port Einstellungen Remote @@ -46,7 +46,7 @@ Auswählen Benutzerkonto auswählen Sind sie sicher? - Something failed + Ups. Etwas ist schief gelaufen Dieselbe Datei nicht übertragen Design Verbindungsart @@ -56,7 +56,6 @@ Hochladen Hochladen abgeschlossen Was möchten Sie tun? - Zeilenumbruch Syntax Hervorhebung Ungeschehen machen Rückgängig machen @@ -76,9 +75,9 @@ Premium Funktionen freischalten Ich mag diese App! Ich liebe diese App! - Backup the accounts + Konten sichern Accounts wiederherstellen - Backup and share the accounts + Sichern Sie und teilen Sie die Konten Konten werden importiert... Konten werden exportiert... Keine Sicherungen gefunden @@ -95,8 +94,7 @@ Öffnen Die Datei %1$s wurde geändert? Möchten Sie sie hochladen? Die Datei %1$s wurde erfolgreich gespeichert! - %1$d ausgewählt - New remote file + Neue Remote-Datei Neue lokale Datei Erstelle ein neues Benutzerkonto Erstellen Sie ein neues Konto um zu starten. @@ -111,12 +109,14 @@ Maßeinheit für Dateigröße Open Source Lizenzen Open-Source-Lizenzen anzeigen - Show navigation breadcrumb Datei öffnen Nur dieses Mal öffnen - Are you missing Turbo Editor? + Fehlt Turbo-Editor? Der beste freie und Open Source Dateieditor! - Change the list type - Use monospace - Recent files + Ändern Sie den Typ der Liste + Verwenden Sie Monospace + Zuletzt geöffnete Dateien + Schriftgröße + Connection Name + Line Numbers diff --git a/Turbo Editor/src/main/res/values-el-rGR/strings.xml b/Turbo Editor/src/main/res/values-el-rGR/strings.xml index bf92969..3cafab5 100644 --- a/Turbo Editor/src/main/res/values-el-rGR/strings.xml +++ b/Turbo Editor/src/main/res/values-el-rGR/strings.xml @@ -56,7 +56,6 @@ Αποστολή Το ανέβασμα ολοκληρώθηκε Τι θέλετε να κάνετε; - Αναδίπλωση κειμένου Επισήμανση σύνταξης Αναίρεση Ακύρωση αναίρεσης @@ -95,7 +94,6 @@ Άνοιγμα Το αρχείο %1$s τροποποιήθηκε, θέλετε να το ανεβάσετε; Το αρχείο %1$s αποθηκεύτηκε με επιτυχία! - %1$d επιλέχθηκε Νέα απομακρυσμένο αρχείο Νέο τοπικό αρχείο Δημιουργία νέου λογαριασμού @@ -111,7 +109,6 @@ Μονάδα μέτρησης για το μέγεθος του αρχείου Άδειες χρήσης ανοιχτού κώδικα Προβολή αδειών χρήσης ανοιχτού κώδικα - Εμφάνιση βοηθού πλοήγησης Άνοιγμα αρχείου Open this time only Are you missing Turbo Editor? @@ -119,4 +116,7 @@ Change the list type Use monospace Recent files + Font size + Connection Name + Line Numbers diff --git a/Turbo Editor/src/main/res/values-es-rES/strings.xml b/Turbo Editor/src/main/res/values-es-rES/strings.xml new file mode 100644 index 0000000..52bbab0 --- /dev/null +++ b/Turbo Editor/src/main/res/values-es-rES/strings.xml @@ -0,0 +1,122 @@ + + + + New account + Activo + Borrar + Borrando ficheros… + Cargando… + Carpeta local actual + Clave privada + Claro + Codificación + Share + New local folder + New remote folder + Desconectar + Carpeta local por defecto + Where to download? + Descargar + Download completed + Duplicate + Done + Home + Servidor + Información + Local + Iniciando sesión… + Editar + Mover + Ocultar + Turbo Client + Turbo Editor + Usuario + Pasivo + Contraseña + Contraseña + Déjelo en blanco para rellenarlo cada sesión + Puerto + Preferencias + Remoto + Para cambiar el tema, reinicie la aplicación + Renombrar + Raíz + Guardar + Oscuro + Seleccionar + Elija una cuenta + ¿Está seguro? + Algo falló + Do not transfer same file + Tema de la aplicación + Tipo de conexión + Tipo de protocolo + Otra carpeta + Usa una contraseña + Enviar + Subida completada + What do you want todo? + Resaltado de sintaxis + Deshacer + Rehacer + Sincronizar + Carpeta remota a sincronizar + Carpeta local a sincronizar + Vota + no podemos contactar a Google Play + y apoyo del crecimiento de otras gran funciones + Suba a Premium + Actualizar a Premium y apoyar el desarrollo de Turbo Client! + Download unlocked version + ¿Que es Turbo Client? ¿Vale la pena? Fije su precio! + Actualice para desbloquear estas características: + habilidad de abrir y modificar cualquier tipo de archivo + Backup service to backup and restore your data safely. + Unlock the Premium features + I really like this app! + I love this app! + Backup the accounts + Restore the accounts + Backup and share the accounts + Importing the accounts… + Exporting the accounts... + No backups found + Cannot open the file + Temporary folder does not exist + An error occurred + Ui + archivo + remover + fecha de modificación + nombre + tamaño + Organizar + Abrir + el archivo %1$s fue modificado quiere subirlo? + The file %1$s was saved with success! + New remote file + New local file + Create a new account + Create a new account to start. + Type + Send feedback + Copy URL + Cut + paste + Advanced + Auto + Bytes + Unit of measurement for file size + Open Source licenses + Show open source licenses + Open a file + Open this time only + Are you missing Turbo Editor? + The best free and open source file editor! + Change the list type + Use monospace + Recent files + Font size + Connection Name + Line Numbers + diff --git a/Turbo Editor/src/main/res/values-es-rES/strings_aboutactivity.xml b/Turbo Editor/src/main/res/values-es-rES/strings_aboutactivity.xml new file mode 100644 index 0000000..263f6ad --- /dev/null +++ b/Turbo Editor/src/main/res/values-es-rES/strings_aboutactivity.xml @@ -0,0 +1,41 @@ + + + + Información + Información sobre la aplicación + Misceláneos + Versión %1$s + Autor + Site del autor + Abrir el site del autor + Correo del autor + Enviar correo al autor + Twitter + Abrir el twitter + Google Plus + Show Google Plus page + Become a beta tester + Be a part of the community to receive beta updates + Translate the Application + Correct some mistakes or add a new translation + Leeme + Leer la referencia + FAQ + Mostrar las faqs + Log de cambios + Mostrar el log de cambios + Términos del servicio + Leer los términos del servicio + Aceptar + Declinar + Políticas de privacidad + Leer las políticas de privacidad + Cosas pendientes + Ver los cambios pendientes + Donar + ¡Gracias por el soporte! + Market de Android + ¡Envía feedback y puntúa! + Market del autor + ¡Ver las aplicaciones del autor! + diff --git a/Turbo Editor/src/main/res/values-fi-rFI/strings.xml b/Turbo Editor/src/main/res/values-fi-rFI/strings.xml new file mode 100644 index 0000000..605ff94 --- /dev/null +++ b/Turbo Editor/src/main/res/values-fi-rFI/strings.xml @@ -0,0 +1,122 @@ + + + + Uusi tili + Aktiivinen + Poista + Poistetaan tiedostoja... + Ladataan... + Nykyinen paikallinen kansio + Yksityinen avain + Vaalea + Koodaus + Jaa + Uusi paikallinen kansio + Uusi etäkansio + Katkaise yhteys + Oletus paikallinen kansio + Mistä haluat ladata? + Lataa + Laataaminen suoritettu + Kahdenna + Valmis + Etusivu + Osoite + Tiedot + Paikallinen + Kirjaudutaan... + Muokkaa + Siirrä + Piilota + Turbo Client + Turbo Editor + Käyttäjätunnus + Passiivinen + Sanalause + Salasana + Jätä tyhjäksi, jolloin sitä kysytään jokaisen istunnon yhteydessä + Portti + Asetukset + Etä + Vaihda teemaa, käynnistä sovellus uudelleen + Nimeä uudelleen + Oletusetäkansio + Tallenna + Tumma + Valitse + Valitse tili + Oletko varma? + Jokin meni pieleen + Älä siirrä samoja tiedostoja + Sovelluksen teema + Yhteyden tyyppi + Protokollatyyppi + Toinen kansio + Käytä salalausetta + Lähetä + Lähetys onnistui + Mitä haluaisit tehdä? + Syntaksinkorostus + Kumoa + Tee uudelleen + Synkronointi + Synkronoitava etäkansio + Synkronoitava paikallinen kansio + Arvostele + Ei voitu muodostaa yhteyttä Play-kauppaan + Tue huippuominaisuuksien kehitystä. + Päivitä Premium-versioon + Päivitä premiumiin ja tue Turbo Client:n kehitystä! + Lataa lukitsematon versio + Kuinka arvokas Turbo Client on sinulle? Määritä sille hinta! + Päivitä avataksesi ominaisuudet: + Valtuudet avata ja muokata kaikentyyppisiä tiedostoja. + Tietojen varmuuskopiointi ja palauttaminen turvallisesti. + Avata Premium-ominaisuudet + Pidän todella tästä sovelluksesta! + Rakastan tätä sovellusta! + Tilien varmuuskopiointi + Tilien palautus + Varmuuskopioi ja jaa tilit + Tilien tuominen... + Tilien vieminen... + Varmuuskopioita ei löytynyt + Tiedoston avaaminen ei onnistu + Tilapäistä kansiota ei ole + Tapahtui virhe + Käyttöliittymä + Kansio + Poista + Muokkauspäivä + Nimi + Koko + Lajittele + Avaa + %1$s tiedosto on muokattu, haluatko lähettää sen? + %1$s tiedosto tallennettu onnistuneesti! + Uusi etätiedosto + Uusi paikallinen tiedosto + Luo uusi tili + Luo uusi tili aloittaaksesi. + Tyyppi + Lähetä palautetta + Kopioi URL-osoite + Leikkaa + Liitä + Lisäasetukset + Automaattinen + Tavua + Tiedostokokon mittäyksikkö + Avoimen lähdekoodin lisenssit + Näytä avoimen lähdekoodin lisenssit + Avaa tiedosto + Avaa vain tällä kertaa + Puuttuuko sinulta Turbo Editor? + Paras ilmainen ja avoimen lähdekoodiin perustava tiedostoeditori! + Muuta luettelotyyliä + Käytä tasalevyistä fonttia + Viimeisimmät tiedostot + Fonttikoko + Yhteyden nimi + Line Numbers + diff --git a/Turbo Editor/src/main/res/values-fi-rFI/strings_aboutactivity.xml b/Turbo Editor/src/main/res/values-fi-rFI/strings_aboutactivity.xml new file mode 100644 index 0000000..4f1dce1 --- /dev/null +++ b/Turbo Editor/src/main/res/values-fi-rFI/strings_aboutactivity.xml @@ -0,0 +1,41 @@ + + + + Tiedot + Sovelluksen tiedot + Sekalaiset + Versio %1$s + Kehittäjä + Kotisivut + Näytä kehittäjän kotisivut + Sähköposti + Lähetä sähköpostia kehittäjälle + Twitter + Näytä kehittäjän Twitter-sivu + Google+ + Näytä kehittäjän Google+-sivu + Tule beetatestaajana + Ole osa yhteisöä vastaanottamalla beetapäivityksiä + Käännä sovellus + Korjaa virheitä tai lisää uusia käännöksiä + Lue minut + Lue viite + UKK + Näytä usein kysytyt kysymykset + Muutosloki + Näytä sovelluksen muutosloki + Käyttöehdot + Lue käyttöehdot + Hyväksy + Hylkää + Yksityisyyskäytäntö + Lue yksityisyyskäytäntö + Tehtävälista + Lue tehtävälista + Tee lahjoitus + Kiitos tuestanne! + Play-kauppa + Lähetä palautetta ja arvostele! + Muut sovellukset + Näytä kehittäjän muut sovellukset + diff --git a/Turbo Editor/src/main/res/values-ms-rMY/strings.xml b/Turbo Editor/src/main/res/values-ms-rMY/strings.xml index fe0770c..391ee8d 100644 --- a/Turbo Editor/src/main/res/values-ms-rMY/strings.xml +++ b/Turbo Editor/src/main/res/values-ms-rMY/strings.xml @@ -56,7 +56,6 @@ Muat naik Muat naik selesai What do you want todo? - Word wrap Syntax highlight Batal edit Buat semula edit @@ -95,7 +94,6 @@ Buka Fail %1$s telah berubah. Adakah anda mahu memuat naik? The file %1$s was saved with success! - %1$d selected New remote file New local file Cipta akaun baru @@ -111,7 +109,6 @@ Unit of measurement for file size Open Source licenses Show open source licenses - Show navigation breadcrumb Open a file Open this time only Are you missing Turbo Editor? @@ -119,4 +116,7 @@ Change the list type Use monospace Recent files + Font size + Connection Name + Line Numbers diff --git a/Turbo Editor/src/main/res/values-nl-rNL/strings.xml b/Turbo Editor/src/main/res/values-nl-rNL/strings.xml index 666cc8c..004f347 100644 --- a/Turbo Editor/src/main/res/values-nl-rNL/strings.xml +++ b/Turbo Editor/src/main/res/values-nl-rNL/strings.xml @@ -56,7 +56,6 @@ Uploaden Uploaden voltooid Wat wil je doen? - Comprimeer de tekst Gekleurde code Ongedaan maken Opnieuw uitvoeren @@ -95,7 +94,6 @@ Openen Het bestand %1$s is aangepast, wilt u het uploaden? Het bestand %1$s is met succes opgeslagen! - %1$d geselecteerd Nieuw extern bestand Nieuw lokaal bestand Nieuwe account toevoegen @@ -111,12 +109,14 @@ Maateenheid voor bestandsgrootte Open Source-licenties Toon open source-licenties - Toon navigatie breadcrumb Open een bestand Alleen deze keer openen Waar is Turbo Editor? De beste gratis en open source file editor! Wijzig het type lijst - Use monospace - Recent files + Gebruik monospace + Recente bestanden + Font size + Connection Name + Line Numbers diff --git a/Turbo Editor/src/main/res/values-pl-rPL/strings.xml b/Turbo Editor/src/main/res/values-pl-rPL/strings.xml index 309feb8..61c2e96 100644 --- a/Turbo Editor/src/main/res/values-pl-rPL/strings.xml +++ b/Turbo Editor/src/main/res/values-pl-rPL/strings.xml @@ -56,7 +56,6 @@ Prześlij Przesyłanie zakończone Co chcesz zrobić? - Zawijanie wyrazów Podświetlenie składni Cofnij Powtórz @@ -95,7 +94,6 @@ Otwórz Plik %1$s został zmodyfikowany, czy chcesz go wysłać? Plik %1$s został pomyślnie zapisany! - %1$d wybranych Nowy plik zdalny Nowy plik lokalny Utwórz nowe konto @@ -111,12 +109,14 @@ Jednostka rozmiaru dla pliku Licencje Open Source Pokaż licencje open source - Pokaż ścieżkę folderu nadrzędnego Otwórz plik Otwórz tylko tym razem Brakuje ci Turbo Editor? Najlepszy, darmowy edytor plików na bazie open source! Zmień typ listy - Use monospace - Recent files + Użyj stałej szerokości + Najnowsze pliki + Rozmiar czcionki + Connection Name + Line Numbers diff --git a/Turbo Editor/src/main/res/values-pt-rBR/strings.xml b/Turbo Editor/src/main/res/values-pt-rBR/strings.xml index 9491555..899696d 100644 --- a/Turbo Editor/src/main/res/values-pt-rBR/strings.xml +++ b/Turbo Editor/src/main/res/values-pt-rBR/strings.xml @@ -56,7 +56,6 @@ Upload Upload concluído What do you want todo? - Quebra de linha Syntax highlight Desfazer Refazer @@ -95,7 +94,6 @@ Open The file %1$s was modified, do you want to upload it? The file %1$s was saved with success! - %1$d selected New remote file New local file Create a new account @@ -111,7 +109,6 @@ Unit of measurement for file size Open Source licenses Show open source licenses - Show navigation breadcrumb Open a file Open this time only Are you missing Turbo Editor? @@ -119,4 +116,7 @@ Change the list type Use monospace Recent files + Font size + Connection Name + Line Numbers diff --git a/Turbo Editor/src/main/res/values-ru-rRU/strings.xml b/Turbo Editor/src/main/res/values-ru-rRU/strings.xml index 537dc90..4d0fc74 100644 --- a/Turbo Editor/src/main/res/values-ru-rRU/strings.xml +++ b/Turbo Editor/src/main/res/values-ru-rRU/strings.xml @@ -56,7 +56,6 @@ Закачка Загрузка завершена What do you want todo? - Перенос строк Подсветка синтаксиса Отменить Повторить @@ -95,7 +94,6 @@ открыть Файл %1$s был изменен, загрузить на сервер? Файл %1$s успешно сохранен! - %1$d выделено Новый файл на сервере Новый локальный файл Создать новый аккаунт @@ -111,7 +109,6 @@ Единица измерения размера файла Open Source licenses Show open source licenses - Показывать цепочку навигации Открыть файл Open this time only Are you missing Turbo Editor? @@ -119,4 +116,7 @@ Внешний вид списка Use monospace Recent files + Font size + Connection Name + Line Numbers diff --git a/Turbo Editor/src/main/res/values/ids.xml b/Turbo Editor/src/main/res/values/ids.xml index a76911f..9b93474 100644 --- a/Turbo Editor/src/main/res/values/ids.xml +++ b/Turbo Editor/src/main/res/values/ids.xml @@ -28,7 +28,7 @@ - + diff --git a/Turbo Editor/src/main/res/values/strings.xml b/Turbo Editor/src/main/res/values/strings.xml index 611bc59..5d98a03 100644 --- a/Turbo Editor/src/main/res/values/strings.xml +++ b/Turbo Editor/src/main/res/values/strings.xml @@ -1,4 +1,4 @@ - + New account @@ -56,7 +56,6 @@ Upload Upload completed What do you want todo? - Word wrap Syntax highlight Undo Redo @@ -95,7 +94,6 @@ Open The file %1$s was modified, do you want to upload it? The file %1$s was saved with success! - %1$d selected New remote file New local file Create a new account @@ -111,13 +109,14 @@ Unit of measurement for file size Open Source licenses Show open source licenses - Show navigation breadcrumb Open a file Open this time only Are you missing Turbo Editor? The best free and open source file editor! - Change The List Type - Use Monospace - Recent Files - Text Size + Change the list type + Use monospace + Recent files + Font size + Connection Name + Line Numbers diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index b979729db0ad460288cfe16f07072da7b1305e93..667288ad6c2b3b87c990ece1267e56f0bcbf3622 100644 GIT binary patch delta 20372 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 AGynhq delta 20444 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

-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