significantly simplified Add Word dialog (no Activity hack)
This commit is contained in:
parent
18c2ab8440
commit
b88957ff5f
17 changed files with 50 additions and 83 deletions
|
|
@ -3,7 +3,6 @@ package io.github.sspanak.tt9.ime;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
|
|
||||||
import io.github.sspanak.tt9.R;
|
import io.github.sspanak.tt9.R;
|
||||||
import io.github.sspanak.tt9.db.DataStore;
|
|
||||||
import io.github.sspanak.tt9.db.words.DictionaryLoader;
|
import io.github.sspanak.tt9.db.words.DictionaryLoader;
|
||||||
import io.github.sspanak.tt9.ime.modes.InputMode;
|
import io.github.sspanak.tt9.ime.modes.InputMode;
|
||||||
import io.github.sspanak.tt9.ime.modes.InputModeKind;
|
import io.github.sspanak.tt9.ime.modes.InputModeKind;
|
||||||
|
|
@ -112,14 +111,7 @@ abstract public class CommandHandler extends TextEditingHandler {
|
||||||
mainView.hideCommandPalette();
|
mainView.hideCommandPalette();
|
||||||
resetStatus();
|
resetStatus();
|
||||||
|
|
||||||
String word = textField.getSurroundingWord(mLanguage);
|
new AddWordDialog(getFinalContext(), mLanguage, textField.getSurroundingWord(mLanguage)).show();
|
||||||
if (word.isEmpty()) {
|
|
||||||
UI.toastLong(this, R.string.add_word_no_selection);
|
|
||||||
} else if (settings.getAddWordsNoConfirmation()) {
|
|
||||||
DataStore.put((res) -> UI.toastLongFromAsync(this, res.toHumanFriendlyString(this)), mLanguage, word);
|
|
||||||
} else {
|
|
||||||
AddWordDialog.show(this, mLanguage.getId(), word);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,80 +1,81 @@
|
||||||
package io.github.sspanak.tt9.ui.dialogs;
|
package io.github.sspanak.tt9.ui.dialogs;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.app.Dialog;
|
||||||
import android.content.Intent;
|
|
||||||
import android.inputmethodservice.InputMethodService;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import io.github.sspanak.tt9.R;
|
import io.github.sspanak.tt9.R;
|
||||||
import io.github.sspanak.tt9.db.DataStore;
|
import io.github.sspanak.tt9.db.DataStore;
|
||||||
import io.github.sspanak.tt9.db.entities.AddWordResult;
|
import io.github.sspanak.tt9.ime.TraditionalT9;
|
||||||
import io.github.sspanak.tt9.languages.Language;
|
import io.github.sspanak.tt9.languages.Language;
|
||||||
import io.github.sspanak.tt9.languages.LanguageCollection;
|
import io.github.sspanak.tt9.preferences.settings.SettingsStore;
|
||||||
import io.github.sspanak.tt9.util.ConsumerCompat;
|
import io.github.sspanak.tt9.ui.PopupBuilder;
|
||||||
|
import io.github.sspanak.tt9.ui.UI;
|
||||||
|
import io.github.sspanak.tt9.ui.main.MainView;
|
||||||
|
|
||||||
public class AddWordDialog extends ThemedPopupDialog {
|
public class AddWordDialog extends ThemedPopupDialog {
|
||||||
public static final String TYPE = "tt9.popup_dialog.add_word";
|
@Nullable private final MainView mainView;
|
||||||
public static final String PARAMETER_LANGUAGE = "lang";
|
@NonNull private final Language language;
|
||||||
public static final String PARAMETER_WORD = "word";
|
@NonNull private final SettingsStore settings;
|
||||||
|
@Nullable private final String word;
|
||||||
|
|
||||||
private Language language;
|
private Dialog popup;
|
||||||
private String word;
|
|
||||||
|
|
||||||
|
|
||||||
AddWordDialog(@NonNull Context context, @NonNull Intent intent, ConsumerCompat<String> activityFinisher) {
|
public AddWordDialog(@NonNull TraditionalT9 tt9, @NonNull Language language, @Nullable String word) {
|
||||||
super(context, activityFinisher, R.style.TTheme_AddWord);
|
super(tt9, null, R.style.TTheme_AddWord);
|
||||||
title = context.getResources().getString(R.string.add_word_title);
|
mainView = tt9.getMainView();
|
||||||
OKLabel = context.getResources().getString(R.string.add_word_add);
|
|
||||||
parseIntent(context, intent);
|
title = tt9.getResources().getString(R.string.add_word_title);
|
||||||
|
OKLabel = tt9.getResources().getString(R.string.add_word_add);
|
||||||
|
message = tt9.getString(R.string.add_word_confirm, word, language.getName());
|
||||||
|
settings = tt9.getSettings();
|
||||||
|
|
||||||
|
this.language = language;
|
||||||
|
this.word = word;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void parseIntent(@NonNull Context context, @NonNull Intent intent) {
|
@Override
|
||||||
word = intent.getStringExtra(PARAMETER_WORD);
|
protected void close() {
|
||||||
|
if (popup != null) {
|
||||||
int languageId = intent.getIntExtra(PARAMETER_LANGUAGE, -1);
|
popup.dismiss();
|
||||||
language = LanguageCollection.getLanguage(languageId);
|
popup = null;
|
||||||
|
|
||||||
if (language == null) {
|
|
||||||
message = context.getString(R.string.add_word_invalid_language_x, languageId);
|
|
||||||
} else {
|
|
||||||
message = context.getString(R.string.add_word_confirm, word, language.getName());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void onOK() {
|
private void onOK() {
|
||||||
if (language != null) {
|
close();
|
||||||
DataStore.put(this::onAddingFinished, language, word);
|
DataStore.put(
|
||||||
}
|
(result) -> UI.toastLongFromAsync(context, result.toHumanFriendlyString(context)),
|
||||||
}
|
language,
|
||||||
|
word
|
||||||
|
);
|
||||||
private void onAddingFinished(AddWordResult addingResult) {
|
|
||||||
activityFinisher.accept(addingResult.toHumanFriendlyString(context));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void show() {
|
public void show() {
|
||||||
if (message == null || word == null || word.isEmpty()) {
|
if (word == null || word.isEmpty()) {
|
||||||
|
UI.toastLong(context, R.string.add_word_no_selection);
|
||||||
close();
|
close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
super.show(this::onOK);
|
if (settings.getAddWordsNoConfirmation()) {
|
||||||
}
|
onOK();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
popup = new PopupBuilder(context)
|
||||||
public static void show(InputMethodService ims, int language, String currentWord) {
|
.setCancelable(true)
|
||||||
Intent intent = new Intent(ims, PopupDialogActivity.class);
|
.setTitle(title)
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
.setMessage(message)
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
.setPositiveButton(OKLabel, this::onOK)
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
|
.setNegativeButton(true, null)
|
||||||
intent.putExtra(PARAMETER_DIALOG_TYPE, TYPE);
|
.setOnKeyListener(this)
|
||||||
intent.putExtra(PARAMETER_LANGUAGE, language);
|
.showFromIme(mainView);
|
||||||
intent.putExtra(PARAMETER_WORD, currentWord);
|
|
||||||
ims.startActivity(intent);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ import android.view.KeyEvent;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import io.github.sspanak.tt9.ui.PopupBuilder;
|
|
||||||
import io.github.sspanak.tt9.util.ConsumerCompat;
|
import io.github.sspanak.tt9.util.ConsumerCompat;
|
||||||
|
|
||||||
abstract public class PopupDialog implements DialogInterface.OnKeyListener {
|
abstract public class PopupDialog implements DialogInterface.OnKeyListener {
|
||||||
|
|
@ -36,16 +35,5 @@ abstract public class PopupDialog implements DialogInterface.OnKeyListener {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void show(Runnable OKAction) {
|
|
||||||
new PopupBuilder(context)
|
|
||||||
.setCancelable(false)
|
|
||||||
.setTitle(title)
|
|
||||||
.setMessage(message)
|
|
||||||
.setPositiveButton(OKLabel, OKAction)
|
|
||||||
.setNegativeButton(true, () -> activityFinisher.accept(""))
|
|
||||||
.setOnKeyListener(this)
|
|
||||||
.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract void show();
|
abstract void show();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,6 @@ public class PopupDialogActivity extends AppCompatActivity {
|
||||||
popupType = popupType != null ? popupType : "";
|
popupType = popupType != null ? popupType : "";
|
||||||
|
|
||||||
return switch (popupType) {
|
return switch (popupType) {
|
||||||
case AddWordDialog.TYPE -> new AddWordDialog(this, i, this::onDialogClose);
|
|
||||||
case AutoUpdateMonolog.TYPE -> new AutoUpdateMonolog(this, i, this::onDialogClose);
|
case AutoUpdateMonolog.TYPE -> new AutoUpdateMonolog(this, i, this::onDialogClose);
|
||||||
default -> {
|
default -> {
|
||||||
Logger.w(LOG_TAG, "Unknown popup type: '" + popupType + "'. Not displaying anything.");
|
Logger.w(LOG_TAG, "Unknown popup type: '" + popupType + "'. Not displaying anything.");
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@
|
||||||
<string name="add_word_no_selection">Преместете показалеца върху дума, за да я добавите към речника.</string>
|
<string name="add_word_no_selection">Преместете показалеца върху дума, за да я добавите към речника.</string>
|
||||||
<string name="add_word_blank">Не може да се въведе празна дума.</string>
|
<string name="add_word_blank">Не може да се въведе празна дума.</string>
|
||||||
<string name="add_word_exist">Думата „%1$s“ вече съществува в речника.</string>
|
<string name="add_word_exist">Думата „%1$s“ вече съществува в речника.</string>
|
||||||
<string name="add_word_invalid_language_x">Не може да се добави дума. Неразпознат език: „%1$d“.</string>
|
|
||||||
<string name="add_word_success">„%1$s“ е добавена.</string>
|
<string name="add_word_success">„%1$s“ е добавена.</string>
|
||||||
<string name="add_word_title">Добавяне на дума</string>
|
<string name="add_word_title">Добавяне на дума</string>
|
||||||
<string name="commands_select_command">Изберете команда</string>
|
<string name="commands_select_command">Изберете команда</string>
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@
|
||||||
<string name="add_word_no_selection">Bewegen Sie den Cursor innerhalb eines Wortes, um es hinzuzufügen.</string>
|
<string name="add_word_no_selection">Bewegen Sie den Cursor innerhalb eines Wortes, um es hinzuzufügen.</string>
|
||||||
<string name="add_word_blank">Leeres Wort nicht hinzugefügt.</string>
|
<string name="add_word_blank">Leeres Wort nicht hinzugefügt.</string>
|
||||||
<string name="add_word_exist">Das Wort \"%1$s\" ist bereits in Wörterbuch.</string>
|
<string name="add_word_exist">Das Wort \"%1$s\" ist bereits in Wörterbuch.</string>
|
||||||
<string name="add_word_invalid_language_x">Wort kann nicht hinzugefügt werden. Unbekannte Sprache: \"%1$d\".</string>
|
|
||||||
<string name="add_word_success">\"%1$s\" hinzugefügt.</string>
|
<string name="add_word_success">\"%1$s\" hinzugefügt.</string>
|
||||||
<string name="add_word_title">Wort hinzufügen</string>
|
<string name="add_word_title">Wort hinzufügen</string>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@
|
||||||
<string name="loading">Cargando…</string>
|
<string name="loading">Cargando…</string>
|
||||||
<string name="error_unexpected">Ocurrió un error inesperado.</string>
|
<string name="error_unexpected">Ocurrió un error inesperado.</string>
|
||||||
<string name="add_word_exist">La palabra \"%1$s\" ya esta en el diccionario.</string>
|
<string name="add_word_exist">La palabra \"%1$s\" ya esta en el diccionario.</string>
|
||||||
<string name="add_word_invalid_language_x">No se puede agregar una palabra. Idioma desconocido: \"%1$d\".</string>
|
|
||||||
<string name="add_word_success">\"%1$s\" añadida.</string>
|
<string name="add_word_success">\"%1$s\" añadida.</string>
|
||||||
<string name="add_word_title">Agregar palabra</string>
|
<string name="add_word_title">Agregar palabra</string>
|
||||||
<string name="pref_category_abc_mode">Modo ABC</string>
|
<string name="pref_category_abc_mode">Modo ABC</string>
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@
|
||||||
<string name="add_word_no_selection">Déplacez le curseur dans un mot pour l\'ajouter.</string>
|
<string name="add_word_no_selection">Déplacez le curseur dans un mot pour l\'ajouter.</string>
|
||||||
<string name="add_word_blank">Mot vide non ajouté.</string>
|
<string name="add_word_blank">Mot vide non ajouté.</string>
|
||||||
<string name="add_word_exist">Le mot «%1$s» est déjà dans le dictionnaire.</string>
|
<string name="add_word_exist">Le mot «%1$s» est déjà dans le dictionnaire.</string>
|
||||||
<string name="add_word_invalid_language_x">Impossible d\'ajouter un mot. Langue inconnue : « %1$d ».</string>
|
|
||||||
<string name="add_word_success">« %1$s » est ajouté</string>
|
<string name="add_word_success">« %1$s » est ajouté</string>
|
||||||
<string name="add_word_title">Ajouter un mot</string>
|
<string name="add_word_title">Ajouter un mot</string>
|
||||||
<string name="commands_select_command">Sélectionner une commande</string>
|
<string name="commands_select_command">Sélectionner une commande</string>
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@
|
||||||
<string name="add_word_no_selection">Sposta il cursore dentro un parola per aggiungerla.</string>
|
<string name="add_word_no_selection">Sposta il cursore dentro un parola per aggiungerla.</string>
|
||||||
<string name="add_word_blank">Nessuna parola da aggiungere.</string>
|
<string name="add_word_blank">Nessuna parola da aggiungere.</string>
|
||||||
<string name="add_word_exist">Parola “%1$s” già nel dizionario.</string>
|
<string name="add_word_exist">Parola “%1$s” già nel dizionario.</string>
|
||||||
<string name="add_word_invalid_language_x">Impossibile aggiungere una parola. Lingua sconosciuta: \"%1$d\".</string>
|
|
||||||
<string name="add_word_success">\"%1$s\" aggiunta.</string>
|
<string name="add_word_success">\"%1$s\" aggiunta.</string>
|
||||||
<string name="add_word_title">Aggiungi parola</string>
|
<string name="add_word_title">Aggiungi parola</string>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@
|
||||||
<string name="add_word_no_selection">הזיזו את הסמן בתוך מילה כדי להוסיף אותה.</string>
|
<string name="add_word_no_selection">הזיזו את הסמן בתוך מילה כדי להוסיף אותה.</string>
|
||||||
<string name="add_word_blank">מילה ריקה לא נוספה</string>
|
<string name="add_word_blank">מילה ריקה לא נוספה</string>
|
||||||
<string name="add_word_exist">המילה \"%1$s\" כבר קיימת במילון.</string>
|
<string name="add_word_exist">המילה \"%1$s\" כבר קיימת במילון.</string>
|
||||||
<string name="add_word_invalid_language_x">לא ניתן להוסיף מילה. שפה לא ידועה: \"%1$d\".</string>
|
|
||||||
<string name="add_word_success">%1$s נוסף.</string>
|
<string name="add_word_success">%1$s נוסף.</string>
|
||||||
<string name="add_word_title">הוסף מילה</string>
|
<string name="add_word_title">הוסף מילה</string>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@
|
||||||
<string name="add_word_no_selection">Perkelkite žymeklį prie žodžio kurį norite pridėti.</string>
|
<string name="add_word_no_selection">Perkelkite žymeklį prie žodžio kurį norite pridėti.</string>
|
||||||
<string name="add_word_blank">Negalima pridėti tuščio žodžio.</string>
|
<string name="add_word_blank">Negalima pridėti tuščio žodžio.</string>
|
||||||
<string name="add_word_exist">Žodis \"%1$s\" jau yra žodyne.</string>
|
<string name="add_word_exist">Žodis \"%1$s\" jau yra žodyne.</string>
|
||||||
<string name="add_word_invalid_language_x">Negalima pridėti žodžio. Nežinoma kalba: \"%1$d\".</string>
|
|
||||||
<string name="add_word_success">Žodis \"%1$s\" pridėtas.</string>
|
<string name="add_word_success">Žodis \"%1$s\" pridėtas.</string>
|
||||||
<string name="add_word_title">Pridėti žodį</string>
|
<string name="add_word_title">Pridėti žodį</string>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@
|
||||||
<string name="add_word_no_selection">Verplaats de cursor binnen een woord om het toe te voegen.</string>
|
<string name="add_word_no_selection">Verplaats de cursor binnen een woord om het toe te voegen.</string>
|
||||||
<string name="add_word_blank">Leeg woord niet toegevoegd.</string>
|
<string name="add_word_blank">Leeg woord niet toegevoegd.</string>
|
||||||
<string name="add_word_exist">Woord \"%1$s\" staat al in het woordenboek.</string>
|
<string name="add_word_exist">Woord \"%1$s\" staat al in het woordenboek.</string>
|
||||||
<string name="add_word_invalid_language_x">Kan geen woord toevoegen. Onbekende taal: \"%1$d\".</string>
|
|
||||||
<string name="add_word_success">\"%1$s\" toegevoegd.</string>
|
<string name="add_word_success">\"%1$s\" toegevoegd.</string>
|
||||||
<string name="add_word_title">Woord toevoegen</string>
|
<string name="add_word_title">Woord toevoegen</string>
|
||||||
<string name="commands_select_command">Een commando selecteren</string>
|
<string name="commands_select_command">Een commando selecteren</string>
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@
|
||||||
<string name="add_word_no_selection">Mova o cursor dentro de uma palavra para adicioná-la.</string>
|
<string name="add_word_no_selection">Mova o cursor dentro de uma palavra para adicioná-la.</string>
|
||||||
<string name="add_word_blank">Palavra em branco, impossível adicionar.</string>
|
<string name="add_word_blank">Palavra em branco, impossível adicionar.</string>
|
||||||
<string name="add_word_exist">Palavra \"%1$s\" já está registrada.</string>
|
<string name="add_word_exist">Palavra \"%1$s\" já está registrada.</string>
|
||||||
<string name="add_word_invalid_language_x">Não é possível adicionar uma palavra. Idioma desconhecido: \"%1$d\".</string>
|
|
||||||
<string name="add_word_success">\"%1$s\" adicionada.</string>
|
<string name="add_word_success">\"%1$s\" adicionada.</string>
|
||||||
<string name="add_word_title">Adicionar Palavra</string>
|
<string name="add_word_title">Adicionar Palavra</string>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@
|
||||||
<string name="add_word_no_selection">Переместите курсор внутрь слова, чтобы добавить его.</string>
|
<string name="add_word_no_selection">Переместите курсор внутрь слова, чтобы добавить его.</string>
|
||||||
<string name="add_word_blank">Невозможно добавить слово.</string>
|
<string name="add_word_blank">Невозможно добавить слово.</string>
|
||||||
<string name="add_word_exist">Слово «%1$s» уже есть в словаре.</string>
|
<string name="add_word_exist">Слово «%1$s» уже есть в словаре.</string>
|
||||||
<string name="add_word_invalid_language_x">Невозможно добавить слово. Неизвестный язык: \"%1$d\".</string>
|
|
||||||
<string name="add_word_success">«%1$s» добавлено</string>
|
<string name="add_word_success">«%1$s» добавлено</string>
|
||||||
<string name="add_word_title">Добавить слово</string>
|
<string name="add_word_title">Добавить слово</string>
|
||||||
<string name="commands_select_command">Выбрать команду</string>
|
<string name="commands_select_command">Выбрать команду</string>
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@
|
||||||
<string name="add_word_no_selection">Ekleme yapmak için imleci eklemek istediğiniz kelimeye götürün.</string>
|
<string name="add_word_no_selection">Ekleme yapmak için imleci eklemek istediğiniz kelimeye götürün.</string>
|
||||||
<string name="add_word_blank">Boşluk eklenemedi.</string>
|
<string name="add_word_blank">Boşluk eklenemedi.</string>
|
||||||
<string name="add_word_exist">\"%1$s\" kelimesi zaten kelime listesinde mevcut.</string>
|
<string name="add_word_exist">\"%1$s\" kelimesi zaten kelime listesinde mevcut.</string>
|
||||||
<string name="add_word_invalid_language_x">Kelime eklenemedi. Bilinmeyen dil: \"%1$d\".</string>
|
|
||||||
<string name="add_word_success">\"%1$s\" başarıyla eklendi.</string>
|
<string name="add_word_success">\"%1$s\" başarıyla eklendi.</string>
|
||||||
<string name="add_word_title">Kelime Ekle</string>
|
<string name="add_word_title">Kelime Ekle</string>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@
|
||||||
<string name="add_word_no_selection">Перемістіть курсор у слово, щоб додати його.</string>
|
<string name="add_word_no_selection">Перемістіть курсор у слово, щоб додати його.</string>
|
||||||
<string name="add_word_blank">Пусте слово не додано.</string>
|
<string name="add_word_blank">Пусте слово не додано.</string>
|
||||||
<string name="add_word_exist">Слово \"%1$s\" вже існує у словнику.</string>
|
<string name="add_word_exist">Слово \"%1$s\" вже існує у словнику.</string>
|
||||||
<string name="add_word_invalid_language_x">Не вдається додати слово. Невідома мова: \"%1$d\".</string>
|
|
||||||
<string name="add_word_success">\"%1$s\" додано.</string>
|
<string name="add_word_success">\"%1$s\" додано.</string>
|
||||||
<string name="add_word_title">Додати слово</string>
|
<string name="add_word_title">Додати слово</string>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@
|
||||||
<string name="add_word_blank">Blank word not added.</string>
|
<string name="add_word_blank">Blank word not added.</string>
|
||||||
<string name="add_word_exist">Word \"%1$s\" is already in the dictionary.</string>
|
<string name="add_word_exist">Word \"%1$s\" is already in the dictionary.</string>
|
||||||
<string name="add_word_invalid_language" translatable="false">Cannot add a word when no language is selected.</string>
|
<string name="add_word_invalid_language" translatable="false">Cannot add a word when no language is selected.</string>
|
||||||
<string name="add_word_invalid_language_x">Cannot add a word. Unknown language: \"%1$d\".</string>
|
|
||||||
<string name="add_word_success">\"%1$s\" added.</string>
|
<string name="add_word_success">\"%1$s\" added.</string>
|
||||||
<string name="add_word_title">Add Word</string>
|
<string name="add_word_title">Add Word</string>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue