diff --git a/embroideryReader/Translation.cs b/embroideryReader/Translation.cs index 02b827b..3512a7d 100644 --- a/embroideryReader/Translation.cs +++ b/embroideryReader/Translation.cs @@ -10,6 +10,7 @@ namespace embroideryReader { private const string TRANSLATIONS_FOLDER = "translations"; private const string TRANSLATION_FILE_EXT = ".ini"; + private const string DEFAULT_TRANSLATION_NAME = "English (EN-US)"; // String IDs public enum StringID { @@ -77,12 +78,14 @@ namespace embroideryReader ENABLE_TRANSPARENCY_GRID, LANGUAGE, GRID_SIZE, + TRANSLATION_INCOMPLETE, // This must be last. Used for checking completeness of translation files. TOTAL_COUNT, }; IniFile translationFile; + IniFile defaultFile; public Translation(String name) { @@ -109,6 +112,7 @@ namespace embroideryReader public void Load(String translationName) { translationFile = new IniFile(System.IO.Path.Combine(TRANSLATIONS_FOLDER, translationName + TRANSLATION_FILE_EXT)); + defaultFile = new IniFile(System.IO.Path.Combine(TRANSLATIONS_FOLDER, DEFAULT_TRANSLATION_NAME + TRANSLATION_FILE_EXT)); } // Returns the translated string, or a string representation of the @@ -117,10 +121,19 @@ namespace embroideryReader { string retval; retval = translationFile.getValue(sid.ToString()); + + // Check the default translation if string is not found in the loaded translation + if (retval == null) + { + retval = defaultFile.getValue(sid.ToString()); + } + + // If it's not found in the default, return a placeholder string if (retval == null) { retval = "%" + sid.ToString() + "%"; } + return retval; } diff --git a/embroideryReader/frmSettingsDialog.cs b/embroideryReader/frmSettingsDialog.cs index 9054521..81c4267 100644 --- a/embroideryReader/frmSettingsDialog.cs +++ b/embroideryReader/frmSettingsDialog.cs @@ -161,6 +161,7 @@ namespace embroideryReader txtGridSize.Left = lblGridSize.Left + lblGridSize.Width + 5; lblGridSizePixels.Text = translation.GetTranslatedString(Translation.StringID.PIXELS); lblGridSizePixels.Left = txtGridSize.Left + txtGridSize.Width + 5; + lblIncompleteTranslation.Text = translation.GetTranslatedString(Translation.StringID.TRANSLATION_INCOMPLETE); } private void cmbLanguage_SelectedIndexChanged(object sender, EventArgs e) diff --git a/translations/English (EN-US).ini b/translations/English (EN-US).ini index 5936edb..4f47025 100644 --- a/translations/English (EN-US).ini +++ b/translations/English (EN-US).ini @@ -61,3 +61,4 @@ ENABLE_TRANSPARENCY_GRID=Enable transparency grid LANGUAGE=Language OK=OK GRID_SIZE=Grid size: +TRANSLATION_INCOMPLETE=Translation is incomplete diff --git a/translations/translations.ods b/translations/translations.ods index 81b0ca5..724df03 100644 Binary files a/translations/translations.ods and b/translations/translations.ods differ