From ed7da8d754df81b79ca966e2ee7b1e56573732fe Mon Sep 17 00:00:00 2001 From: dborth Date: Mon, 22 Mar 2010 08:11:14 +0000 Subject: [PATCH] saner font drawing --- source/gui/gui.h | 7 +- source/gui/gui_filebrowser.cpp | 2 +- source/gui/gui_text.cpp | 212 ++++---- source/lang/fr.lang | 859 ++++++++++++++++++++++++++++++++- source/menu.cpp | 16 +- 5 files changed, 985 insertions(+), 111 deletions(-) diff --git a/source/gui/gui.h b/source/gui/gui.h index 7f5df93..cf3a03b 100644 --- a/source/gui/gui.h +++ b/source/gui/gui.h @@ -662,9 +662,10 @@ class GuiText : public GuiElement void Draw(); protected: GXColor color; //!< Font color - wchar_t* text; //!< Unicode text value - wchar_t* textDyn; //!< Wrapped text value - char * origText; //!< Original text data + wchar_t* text; //!< Translated Unicode text value + wchar_t *textDyn[20]; //!< Text value, if max width, scrolling, or wrapping enabled + int textDynNum; //!< Number of text lines + char * origText; //!< Original text data (English) int size; //!< Font size int maxWidth; //!< Maximum width of the generated text object (for text wrapping) int textScroll; //!< Scrolling toggle diff --git a/source/gui/gui_filebrowser.cpp b/source/gui/gui_filebrowser.cpp index 50f51fb..4caf25f 100644 --- a/source/gui/gui_filebrowser.cpp +++ b/source/gui/gui_filebrowser.cpp @@ -109,7 +109,7 @@ GuiFileBrowser::GuiFileBrowser(int w, int h) fileListText[i] = new GuiText(NULL, 20, (GXColor){0, 0, 0, 0xff}); fileListText[i]->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE); fileListText[i]->SetPosition(5,0); - fileListText[i]->SetMaxWidth(450); + fileListText[i]->SetMaxWidth(380); fileListBg[i] = new GuiImage(bgFileSelectionEntry); fileListIcon[i] = NULL; diff --git a/source/gui/gui_text.cpp b/source/gui/gui_text.cpp index 9255818..08d9348 100644 --- a/source/gui/gui_text.cpp +++ b/source/gui/gui_text.cpp @@ -35,7 +35,7 @@ GuiText::GuiText(const char * t, int s, GXColor c) style = FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE; maxWidth = 0; wrap = false; - textDyn = NULL; + textDynNum = 0; textScroll = SCROLL_NONE; textScrollPos = 0; textScrollInitialDelay = TEXT_SCROLL_INITIAL_DELAY; @@ -64,7 +64,7 @@ GuiText::GuiText(const char * t) style = presetStyle; maxWidth = presetMaxWidth; wrap = false; - textDyn = NULL; + textDynNum = 0; textScroll = SCROLL_NONE; textScrollPos = 0; textScrollInitialDelay = TEXT_SCROLL_INITIAL_DELAY; @@ -89,8 +89,12 @@ GuiText::~GuiText() free(origText); if(text) delete[] text; - if(textDyn) - delete[] textDyn; + + if(textDynNum > 0) + { + for(int i=0; i < textDynNum; i++) + delete[] textDyn[i]; + } } void GuiText::SetText(const char * t) @@ -99,12 +103,16 @@ void GuiText::SetText(const char * t) free(origText); if(text) delete[] text; - if(textDyn) - delete[] textDyn; + + if(textDynNum > 0) + { + for(int i=0; i < textDynNum; i++) + delete[] textDyn[i]; + } origText = NULL; text = NULL; - textDyn = NULL; + textDynNum = 0; textScrollPos = 0; textScrollInitialDelay = TEXT_SCROLL_INITIAL_DELAY; @@ -133,12 +141,26 @@ void GuiText::SetFontSize(int s) void GuiText::SetMaxWidth(int width) { maxWidth = width; + + if(textDynNum > 0) + { + for(int i=0; i < textDynNum; i++) + delete[] textDyn[i]; + } + textDynNum = 0; } void GuiText::SetWrap(bool w, int width) { wrap = w; maxWidth = width; + + if(textDynNum > 0) + { + for(int i=0; i < textDynNum; i++) + delete[] textDyn[i]; + } + textDynNum = 0; } void GuiText::SetScroll(int s) @@ -146,11 +168,13 @@ void GuiText::SetScroll(int s) if(textScroll == s) return; - if(textDyn) + if(textDynNum > 0) { - delete[] textDyn; - textDyn = NULL; + for(int i=0; i < textDynNum; i++) + delete[] textDyn[i]; } + textDynNum = 0; + textScroll = s; textScrollPos = 0; textScrollInitialDelay = TEXT_SCROLL_INITIAL_DELAY; @@ -209,6 +233,13 @@ void GuiText::ResetText() delete[] text; text = charToWideChar(gettext(origText)); + + if(textDynNum > 0) + { + for(int i=0; i < textDynNum; i++) + delete[] textDyn[i]; + } + textDynNum = 0; } /** @@ -237,130 +268,119 @@ void GuiText::Draw() fontSystem[newSize] = new FreeTypeGX(newSize); currentSize = newSize; } - - u8 maxChar; if(maxWidth == 0) { fontSystem[currentSize]->drawText(this->GetLeft(), this->GetTop(), text, c, style); - goto done; + this->UpdateEffects(); + return; } - maxChar = int((float((maxWidth<<1))) / (float(newSize))); // approximate + u32 maxChar = maxWidth*2.5 / (float)newSize; // approximate + u32 textlen = wcslen(text); if(wrap) { - int lineheight = newSize + 6; - int txtlen = wcslen(text); - int i = 0; - int ch = 0; - int linenum = 0; - int lastSpace = -1; - int lastSpaceIndex = -1; - wchar_t * textrow[20]; - - while(ch < txtlen) + if(textDynNum == 0) { - if(i == 0) - textrow[linenum] = new wchar_t[txtlen + 1]; + u32 n = 0, ch = 0; + int linenum = 0; + int lastSpace = -1; + int lastSpaceIndex = -1; - textrow[linenum][i] = text[ch]; - textrow[linenum][i+1] = 0; - - if(text[ch] == ' ' || ch == txtlen-1) + while(ch < textlen && linenum < 20) { - if(wcslen(textrow[linenum]) >= maxChar) + if(n == 0) + textDyn[linenum] = new wchar_t[textlen + 1]; + + textDyn[linenum][n] = text[ch]; + textDyn[linenum][n+1] = 0; + + if(text[ch] == ' ' || ch == textlen-1) { - if(lastSpace >= 0) + if(wcslen(textDyn[linenum]) >= maxChar) { - textrow[linenum][lastSpaceIndex] = 0; // discard space, and everything after - ch = lastSpace; // go backwards to the last space - lastSpace = -1; // we have used this space - lastSpaceIndex = -1; + if(lastSpace >= 0) + { + textDyn[linenum][lastSpaceIndex] = 0; // discard space, and everything after + ch = lastSpace; // go backwards to the last space + lastSpace = -1; // we have used this space + lastSpaceIndex = -1; + } + ++linenum; + n = -1; + } + else if(ch == textlen-1) + { + ++linenum; } - ++linenum; - i = -1; } - else if(ch == txtlen-1) + if(text[ch] == ' ' && n >= 0) { - ++linenum; + lastSpace = ch; + lastSpaceIndex = n; } + ++ch; + ++n; } - if(text[ch] == ' ' && i >= 0) - { - lastSpace = ch; - lastSpaceIndex = i; - } - ++ch; - ++i; + textDynNum = linenum; } + int lineheight = newSize + 6; int voffset = 0; if(alignmentVert == ALIGN_MIDDLE) - voffset = (lineheight >> 1) * (1-linenum); + voffset = (lineheight >> 1) * (1-textDynNum); int left = this->GetLeft(); int top = this->GetTop() + voffset; - for(i=0; i < linenum; ++i) - { - fontSystem[currentSize]->drawText(left, top+i*lineheight, textrow[i], c, style); - delete[] textrow[i]; - } - goto done; + for(int i=0; i < textDynNum; ++i) + fontSystem[currentSize]->drawText(left, top+i*lineheight, textDyn[i], c, style); } - - if(textScroll == SCROLL_HORIZONTAL) + else { - char *tmpText = strdup(gettext(origText)); - char *tmpText2 = strdup(tmpText); - int textlen = strlen(tmpText); - - if(textlen > maxChar && (FrameTimer % textScrollDelay == 0)) + if(textDynNum == 0) { - if(textScrollInitialDelay) + textDynNum = 1; + textDyn[0] = wcsdup(text); + + if(textlen > maxChar) + textDyn[0][maxChar] = 0; + } + + if(textScroll == SCROLL_HORIZONTAL) + { + if(textlen > maxChar && (FrameTimer % textScrollDelay == 0)) { - --textScrollInitialDelay; - } - else - { - ++textScrollPos; - if(textScrollPos > textlen-1) + if(textScrollInitialDelay) { - textScrollPos = 0; - textScrollInitialDelay = TEXT_SCROLL_INITIAL_DELAY; + --textScrollInitialDelay; } - - strncpy(tmpText, &tmpText2[textScrollPos], maxChar-1); - tmpText[maxChar-1] = 0; - - int dynlen = strlen(tmpText); - - if(dynlen+2 < maxChar) + else { - tmpText[dynlen] = ' '; - tmpText[dynlen+1] = ' '; - strncat(&tmpText[dynlen+2], tmpText2, maxChar - dynlen - 2); + ++textScrollPos; + if((u32)textScrollPos > textlen-1) + { + textScrollPos = 0; + textScrollInitialDelay = TEXT_SCROLL_INITIAL_DELAY; + } + + wcsncpy(textDyn[0], &text[textScrollPos], maxChar-1); + textDyn[maxChar-1] = 0; + + u32 dynlen = wcslen(textDyn[0]); + + if(dynlen+2 < maxChar) + { + textDyn[0][dynlen] = ' '; + textDyn[0][dynlen+1] = ' '; + wcsncat(&textDyn[0][dynlen+2], text, maxChar - dynlen - 2); + } } - if(textDyn) delete[] textDyn; - textDyn = charToWideChar(tmpText); } } - free(tmpText); - free(tmpText2); + fontSystem[currentSize]->drawText(this->GetLeft(), this->GetTop(), textDyn[0], c, style); } - - if(!textDyn) - { - char *tmpText = strdup(gettext(origText)); - if(strlen(tmpText) > maxChar) - tmpText[maxChar] = 0; - textDyn = charToWideChar(tmpText); - free(tmpText); - } - - fontSystem[currentSize]->drawText(this->GetLeft(), this->GetTop(), textDyn, c, style); -done: this->UpdateEffects(); } diff --git a/source/lang/fr.lang b/source/lang/fr.lang index 85d8364..bd00f5e 100644 --- a/source/lang/fr.lang +++ b/source/lang/fr.lang @@ -1,2 +1,857 @@ -msgid " " -msgstr "" +msgid "&" +msgstr "&" + +msgid "16:9 Correction" +msgstr "Correction 16:9" + +msgid "7z decompression failed: Archive contains too many files" +msgstr "La décompression 7z a échoué : l'archive contient trop de fichiers" + +msgid "7z decompression failed: Failed to read file data" +msgstr "La décompression 7z a échoué : la lecture des données du fichier a échoué" + +msgid "7z decompression failed: File is corrupt" +msgstr "La décompression 7z a échoué : le fichier est corrompu" + +msgid "7z decompression failed: File is corrupt (CRC mismatch)" +msgstr "La décompression 7z a échoué : le fichier est corrompu (erreur de contrôle de redondance cyclique - CRC)" + +msgid "7z decompression failed: File uses too high of compression settings (dictionary size is too large)" +msgstr "La décompression 7z a échoué : le fichier utilise un paramètre de compression trop élevé (taille du dictionnaire trop haute)" + +msgid "7z decompression failed: File uses unsupported compression settings" +msgstr "La décompression 7z a échoué : le fichier utilise des paramètres de compression non supportés" + +msgid "A (Rapid)" +msgstr "A (Rapide)" + +msgid "Aim Offscreen" +msgstr "Visée hors champ" + +msgid "An update is available!" +msgstr "Une mise à jour est disponible !" + +msgid "Are you sure that you want to reset this game? Any unsaved progress will be lost." +msgstr "Êtes-vous sûr de vouloir redémarrer ce jeu ? Toute progression non sauvegardée sera perdue." + +msgid "Are you sure that you want to reset your mappings?" +msgstr "Êtes-vous sûr de vouloir réinitialiser les touches ?" + +msgid "Are you sure that you want to reset your settings?" +msgstr "Êtes-vous sûr de vouloir réinitialiser tout les paramètres ?" + +msgid "Maintain Aspect Ratio" +msgstr "Conserver les proportions" + +msgid "Attempting to determine load device..." +msgstr "Tentative de détection du périphérique d'entrée..." + +msgid "Attempting to determine save device..." +msgstr "Tentative de détection du périphérique de sauvegarde..." + +msgid "Auto" +msgstr "Auto" + +msgid "Auto Detect" +msgstr "Détection Auto" + +msgid "Auto Load" +msgstr "Chargement Auto" + +msgid "Auto Save" +msgstr "Sauvegarde Auto" + +msgid "Automatic (Recommended)" +msgstr "Automatique (Recommandé)" + +msgid "B (Rapid)" +msgstr "B (Rapide)" + +msgid "Back" +msgstr "Retour" + +msgid "Both" +msgstr "Les deux" + +msgid "Button Mapping" +msgstr "Contrôles" + +msgid "Button Mappings" +msgstr "Redéfinir les touches" + +msgid "Cancel" +msgstr "Annuler" + +msgid "Caps" +msgstr "Verr.Maj" + +msgid "Cheats" +msgstr "Cheats" + +msgid "Cheats file not found!" +msgstr "Fichier Cheats non trouvé !" + +msgid "Cheats Folder" +msgstr "Dossier Cheats" + +msgid "Choose Game" +msgstr "Choisir un jeu" + +msgid "Classic Controller" +msgstr "Manette Classique" + +msgid "Close" +msgstr "Fermer" + +msgid "Coding" +msgstr "Programmation" + +msgid "Coding & menu design" +msgstr "Prog. & design du menu" + +msgid "Compressed GBA files are not supported!" +msgstr "Les fichiers GBA compressés ne sont pas supportés !" + +msgid "Connecting to network share..." +msgstr "Connection au partage réseau en cours..." + +msgid "Controller" +msgstr "Contrôleur" + +msgid "Cover View" +msgstr "Vue Jaquette" + +msgid "Covers Folder" +msgstr "Dossier des jaquettes" + +msgid "Credits" +msgstr "Crédits" + +msgid "Cropping" +msgstr "Recadrage" + +msgid "Crosshair" +msgstr "Réticule de visée" + +msgid "Cursor" +msgstr "Curseur" + +msgid "Data DVD" +msgstr "Données DVD" + +msgid "Default" +msgstr "Par défaut" + +msgid "Directory name is too long!" +msgstr "Le nom du répertoire est trop long !" + +msgid "Disabled" +msgstr "Désactivé" + +msgid "DISABLED" +msgstr "DÉSACTIVÉ" + +msgid "distributed, or modified under the terms of the" +msgstr "distribuée, ou modifiée selon les termes de" + +msgid "Don't Save" +msgstr "Ne pas sauver" + +msgid "Down" +msgstr "Bas" + +msgid "DOWN" +msgstr "BAS" + +msgid "Downloading..." +msgstr "Téléchargement en cours..." + +msgid "Dutch" +msgstr "Néerlandais" + +msgid "Empty or invalid ZIP file!" +msgstr "Fichier ZIP vide ou invalide !" + +msgid "Enabled" +msgstr "Activé" + +msgid "ENABLED" +msgstr "ACTIVÉ" + +msgid "English" +msgstr "Anglais" + +msgid "Error" +msgstr "Erreur" + +msgid "Error - Invalid ZIP file!" +msgstr "Erreur - Fichier ZIP invalide !" + +msgid "Error creating file!" +msgstr "Une erreur est survenue à la création du fichier !" + +msgid "Error loading game!" +msgstr "Erreur de chargement du jeu !" + +msgid "Error opening archive!" +msgstr "Erreur lors de l'ouverture de l'archive !" + +msgid "Error opening directory!" +msgstr "Erreur lors de l'ouverture du répertoire !" + +msgid "Error opening file!" +msgstr "Erreur lors de l'ouverture du fichier !" + +msgid "Error reading file!" +msgstr "Une erreur est survenue à la lecture du fichier !" + +msgid "Error saving file!" +msgstr "Erreur lors de la sauvegarde du fichier !" + +msgid "Exit" +msgstr "Sortir" + +msgid "Exit Action" +msgstr "Sortie de l'émulateur" + +msgid "Failed to connect to network share." +msgstr "La connection au partage réseau a échoué." + +msgid "FDS BIOS file is invalid!" +msgstr "Le fichier du BIOS du FDS (Famicom Disk System) est invalide !" + +msgid "FDS BIOS file not found!" +msgstr "Le fichier du BIOS du FDS (Famicom Disk System) est introuvable !" + +msgid "Filtered" +msgstr "Filtré" + +msgid "Filtering" +msgstr "Filtrage" + +msgid "Fire" +msgstr "Tirer" + +msgid "French" +msgstr "Français" + +msgid "GBA Screen Zoom" +msgstr "Zoom écran GBA" + +msgid "Game Genie ROM not found!" +msgstr "La ROM Game Genie est introuvable !" + +msgid "Game Settings" +msgstr "Configuration" + +msgid "Game Settings - Button Mappings" +msgstr "Configuration - Redéfinir les touches" + +msgid "Game Settings - Cheats" +msgstr "Configuration - Cheats" + +msgid "Game Settings - Video" +msgstr "Configuration - Vidéo" + +msgid "Game Timing" +msgstr "Timing du jeu" + +msgid "Game Genie DISABLED" +msgstr "Game Genie Désactivé" + +msgid "Game Genie ENABLED" +msgstr "Game Genie Activé" + +msgid "GameCube Controller" +msgstr "Manette Gamecube" + +msgid "German" +msgstr "Allemand" + +msgid "GNU General Public License (GPL) Version 2." +msgstr "la Licence Publique Générale (GPL) GNU Version 2." + +msgid "Go Back" +msgstr "Retour" + +msgid "Horizontal" +msgstr "Horizontal" + +msgid "Information" +msgstr "Information" + +msgid "Initializing network..." +msgstr "Initialisation du réseau en cours..." + +msgid "Insert Coin" +msgstr "Insérer une pièce" + +msgid "Insert Coin / Switch Disk" +msgstr "Insér. une pièce/Chang. disq." + +msgid "Invalid file size!" +msgstr "Taille du fichier invalide" + +msgid "Invalid game file!" +msgstr "Taille du fichier du jeu invalide" + +msgid "Invalid network settings - Check settings.xml." +msgstr "Paramètres réseau invalides - Veuillez vérifier le fichier settings.xml." + +msgid "Invalid network settings - Share IP is blank." +msgstr "Paramètres réseau invalides - L'IP partagée n'est pas renseignée." + +msgid "Invalid network settings - Share name is blank." +msgstr "Paramètres réseau invalides - Le nom du partage n'est pas renseigné." + +msgid "Invalid save file" +msgstr "Fichier de sauvegarde invalide" + +msgid "Invalid state file" +msgstr "Fichier de sauvegarde d'état invalide" + +msgid "Italian" +msgstr "Italien" + +msgid "Japanese" +msgstr "Japonais" + +msgid "Justifier" +msgstr "Konami Justifier" + +msgid "Justifier - GameCube Controller" +msgstr "Konami Justifier - Manette GameCube" + +msgid "Justifier - Wiimote" +msgstr "Konami Justifier - Wiimote" + +msgid "Korean" +msgstr "Coréen" + +msgid "L TRIG" +msgstr "L" + +msgid "Language" +msgstr "Langage" + +msgid "Languages Folder" +msgstr "Dossier des Langues" + +msgid "Left" +msgstr "Gauche" + +msgid "LEFT" +msgstr "GAUCHE" + +msgid "Left Button" +msgstr "Clic gauche" + +msgid "Load" +msgstr "Charger" + +msgid "Load Device" +msgstr "Périphérique d'entrée" + +msgid "Load Folder" +msgstr "Dossier des Jeux" + +msgid "Load Game" +msgstr "Charger une partie" + +msgid "Loading" +msgstr "Chargement" + +msgid "Loading DVD..." +msgstr "Chargement du DVD en cours..." + +msgid "Loading patch..." +msgstr "Chargement du patch en cours..." + +msgid "Loading..." +msgstr "Chargement en cours..." + +msgid "Main Menu" +msgstr "Menu Principal" + +msgid "Match GC Controls" +msgstr "Jouabilité GC identique" + +msgid "Match Wii Controls" +msgstr "Jouabilité Wii identique" + +msgid "Maximum filepath length reached!" +msgid "La longueur maximale du chemin d'accés est atteinte !" + +msgid "Menu" +msgstr "Menu" + +msgid "Menu artwork" +msgstr "Menu artwork" + +msgid "Menu sound" +msgstr "Menu Son" + +msgid "MINUS" +msgstr "MOINS" + +msgid "Music Volume" +msgstr "Volume de la Musique" + +msgid "Mute" +msgstr "Muet" + +msgid "NES Controller" +msgstr "Manette NES" + +msgid "NES Controllers (2)" +msgstr "Manettes NES (2)" + +msgid "NES Controllers (4)" +msgstr "Manettes NES (4)" + +msgid "NES Zapper" +msgstr "Nintendo Zapper" + +msgid "Network" +msgstr "Réseau" + +msgid "Network Share" +msgstr "Partage réseau" + +msgid "New" +msgstr "Nouvelle" + +msgid "New Snapshot" +msgstr "Nouvelle sauvegarde d'état" + +msgid "New SRAM" +msgstr "Nouvelle sauvegarde SRAM" + +msgid "No" +msgstr "Non" + + +msgid "No data to save!" +msgstr "Pas de données (RAM) à sauvegarder !" + +msgid "No disc inserted!" +msgstr "Aucun disque inséré !" + +msgid "No SRAM data to save!" +msgstr "Pas de données SRAM à sauvegarder !" + + +msgid "No game saves found." +msgstr "Aucune sauvegarde trouvée." + +msgid "None" + +msgstr "Aucun" + +msgid "NTSC (480i)" +msgstr "NTSC (480i)" + +msgid "Nunchuk" +msgstr "Nunchuk" + +msgid "Off" +msgstr "Off" + +msgid "Official Site: http://code.google.com/p/fceugc/" +msgstr "Site Officiel: http://code.google.com/p/fceugc/" + +msgid "Official Site: http://code.google.com/p/snes9x-gx/" +msgstr "Site Officiel: http://code.google.com/p/snes9x-gx/" + +msgid "Official Site: http://code.google.com/p/vba-wii/" +msgstr "Site Officiel: http://code.google.com/p/vba-wii/" + +msgid "OK" +msgstr "OK" + +msgid "On" +msgstr "On" + +msgid "Original" +msgstr "Original" + +msgid "Out of memory!" +msgstr "Mémoire insuffisante !" + +msgid "Out of memory: too many files!" +msgstr "Mémoire insuffisante : trop de fichiers !" + +msgid "P 1" +msgstr "J1" + +msgid "P2" +msgstr "J2" + +msgid "P3" +msgstr "J3" + +msgid "P4" +msgstr "J4" + +msgid "PAL (50Hz)" +msgstr "PAL (50Hz)" + +msgid "PAL (60Hz)" +msgstr "PAL (60Hz)" + +msgid "Palette saved" +msgstr "La palette est sauvegardée" + +msgid "Partial Stretch" +msgstr "Étirer partiellement" + +msgid "Pause" +msgstr "Pause" + +msgid "Please install IOS 202 for DVD support." +msgstr "Veuillez installer l'IOS 202 pour le support du DVD" + +msgid "Please Wait" +msgstr "Veuillez patienter" + +msgid "PLUS" +msgstr "PLUS" + +msgid "Portuguese" +msgstr "Portugais" + +msgid "Power off Wii" +msgstr "Éteindre la Wii" + +msgid "Preferences saved" +msgstr "Les préférences ont été sauvegardés" + +msgid "Press any button on the Classic Controller now. Press Home to clear the existing mapping." +msgstr "Appuyer sur un bouton de la manette Classique. Appuyer sur HOME pour effacer le paramètre actuel." + +msgid "Press any button on the GameCube Controller now. Press Home or the C-Stick in any direction to clear the existing mapping." +msgstr "Presser un bouton de la manette Gamecube. Presser HOME ou le stick C pour effacer le paramètre actuel." + +msgid "Press any button on the GameCube Controller now. Press the C-Stick in any direction to clear the existing mapping." +msgstr "Presser un bouton de la manette Gamecube. Presser une direction du stick C pour effacer le paramètre actuel." + +msgid "Press any button on the Wiimote now. Press Home to clear the existing mapping." +msgstr "Presser un bouton de la Wiimote. Presser HOME pour effacer le paramètre actuel." + +msgid "Press any button on the Wiimote or Nunchuk now. Press Home to clear the existing mapping." +msgstr "Presser un bouton de la Wiimote ou du Nunchuk. Presser HOME pour effacer le paramètre actuel." + +msgid "Progressive (480p)" +msgstr "Progressif (480p)" + +msgid "Quit Game" +msgstr "Quitter le Jeu" + +msgid "Quit this game? Any unsaved progress will be lost." +msgstr "Quitter ce jeu ? Toute progression non sauvegardée sera perdue." + +msgid "R TRIG" +msgstr "R" + +msgid "RAM saving is not available for FDS games!" +msgstr "La sauvegarde RAM n'est pas disponible pour les jeux sur disquette (Famicom Disk System) !" + +msgid "Reboot" +msgstr "Redémarrer" + +msgid "Rendering" +msgstr "Rendu" + +msgid "Reset" +msgstr "Réinitialiser" + +msgid "Reset Game" +msgstr "Réinitialiser le Jeu" + +msgid "Reset this game? Any unsaved progress will be lost." +msgstr "Redémarrer ce jeu ? Toute progression non sauvegardée sera perdue." + +msgid "Reset Mappings" +msgstr "Réinit. les touches" + +msgid "Reset Settings" +msgstr "Réinitialiser" + +msgid "Retry" +msgstr "Réessayer" + +msgid "Return to Loader" +msgstr "Retourner au Loader" + +msgid "Return to Wii Menu" +msgstr "Retourner au Menu Wii" + +msgid "Right" +msgstr "Droite" + +msgid "RIGHT" +msgstr "DROITE" + +msgid "Right Button" +msgstr "Clic droit" + +msgid "Rumble" +msgstr "Vibration" + +msgid "Save" +msgstr "Sauver" + +msgid "Save Device" +msgstr "Périph. de sauvegarde" + +msgid "Save failed!" +msgstr "La sauvegarde a échoué !" + +msgid "Save file not found" +msgstr "Pas de fichier de sauvegarde trouvé" + +msgid "Save Folder" +msgstr "Dossier des sauv." + +msgid "Save Game" +msgstr "Sauvegarder la partie" + +msgid "Save RAM and State?" +msgstr "Sauver la RAM et la position du jeu (sauvegarde d'état) ?" + +msgid "Save Snapshot?" +msgstr "Sauver la position du jeu (sauvegarde d'état) ?" + +msgid "Save SRAM and Snapshot?" +msgstr "Sauver la SRAM et la position du jeu (sauvegarde d'état) ?" + +msgid "Save State?" +msgstr "Sauver la position du jeu (sauvegarde d'état) ?" + +msgid "Save successful" +msgstr "Sauvegarde réussie" + +msgid "Saving" +msgstr "Sauvegarde" + +msgid "Saving preferences..." +msgstr "Sauvegarde des préférences en cours..." + +msgid "Saving..." +msgstr "Sauvegarde en cours..." + +msgid "Scaling" +msgstr "Format" + +msgid "Screen Position" +msgstr "Position de l'écran" + +msgid "Screen Zoom" +msgstr "Zoom écran" + +msgid "Select" +msgstr "Select" + +msgid "Seek error!" +msgstr "Erreur de positionnement ! (seek error)" + +msgid "Settings" +msgstr "Paramètres" + +msgid "Settings - Menu" +msgstr "Paramètres - Menu" + +msgid "Settings - Network" +msgstr "Paramètres - Réseau" + +msgid "Settings - Saving & Loading" +msgstr "Paramètres - Sauvegarde & Chargement" + +msgid "SD Card" +msgstr "Carte SD" + +msgid "SD card not found!" +msgstr "Carte SD introuvable !" + +msgid "Shift" +msgstr "Maj" + +msgid "Simp_chinese" +msgstr "Chinois simplifié" + +msgid "SMB Share IP" +msgstr "IP partagée SMB" + +msgid "SMB Share Name" +msgstr "Nom du Partage SMB" + +msgid "SMB Share Password" +msgstr "Mot de passe de partage SMB" + +msgid "SMB Share Username" +msgstr "Nom d'utilisateur de partage SMB" + +msgid "Snapshot" +msgstr "Sauvegarde d'état" + +msgid "Snapshot (Auto)" +msgstr "Sauv. d'état (Auto)" + +msgid "SNES Controller" +msgstr "Manette SNES" + +msgid "SNES Controllers (2)" +msgstr "Manettes SNES (2)" + +msgid "SNES Controllers (4)" +msgstr "Manettes SNES (4)" + +msgid "SNES Controller - Classic Controller" +msgstr "Manette SNES - Manette Classique" + +msgid "SNES Controller - GameCube Controller" +msgstr "Manette SNES - Manette GameCube" + +msgid "SNES Controller - Nunchuk + Wiimote" +msgstr "Manette SNES - Nunchuk + Wiimote" + +msgid "SNES Controller - Wiimote" +msgstr "Manette SNES - Wiimote" + +msgid "SNES Mouse" +msgstr "Souris SNES" + +msgid "SNES Mouse - GameCube Controller" +msgstr "Souris SNES - Manette GameCube" + +msgid "SNES Mouse - Wiimote" +msgstr "Souris SNES - Wiimote" + +msgid "Snes9x - Copyright (c) Snes9x Team 1996 - 2006" +msgstr "Snes9x - Copyright (c) Snes9x Team 1996 - 2006" + +msgid "Sound Effects Volume" +msgstr "Volume des effets sonores" + +msgid "Spanish" +msgstr "Espagnol" + +msgid "Sprite Limit" +msgstr "Limite de Sprites" + +msgid "SRAM file not found" +msgstr "Pas de sauvegarde SRAM trouvée" + +msgid "State" +msgstr "Sauvegarde d'état" + +msgid "State (Auto)" +msgstr "Sauv. d'état (Auto)" + +msgid "State file not found" +msgstr "Pas de sauvegarde d'état trouvée" + +msgid "Stretch to Fit" +msgstr "Plein écran" + +msgid "Superscope" +msgstr "Super Scope" + +msgid "Superscope - GameCube Controller" +msgstr "Super Scope - Manette GameCube" + +msgid "Superscope - Wiimote" +msgstr "Super Scope - Wiimote" + +msgid "This software is open source and may be copied," +msgstr "Cette application est libre et peut être copiée," + +msgid "Trad_chinese" +msgstr "Chinois traditionnel" + +msgid "Unable to initialize network!" +msgstr "Impossible d'initialiser le réseau !" + +msgid "Unable to locate a load device!" +msgstr "Périphérique d'entrée introuvable !" + +msgid "Unable to locate a save device!" +msgstr "Périphérique de sauvegarde introuvable !" + +msgid "Unable to open snapshot!" +msgstr "Impossible d'ouvrir la sauvegarde d'état" + +msgid "Unfiltered" +msgstr "Non-filtré" + +msgid "Unknown file type!" +msgstr "Type de fichier inconnu !" + +msgid "Unrecognized DVD format." +msgstr "Format du DVD inconnu." + +msgid "Unrecognized file extension!" +msgstr "L'extension du fichier est inconnu !" + +msgid "Up" +msgstr "Haut" + +msgid "UP" +msgstr "HAUT" + +msgid "Up One Level" +msgstr "Dossier Parent" + +msgid "Update Available" +msgstr "Mise à jour disponible" + +msgid "Update failed!" +msgstr "La mise à jour a échouée !" + +msgid "Update later" +msgstr "Mise à jour plus tard" + +msgid "Update now" +msgstr "Mise à jour maintenant" + +msgid "Update successful!" +msgstr "La mise à jour a réussie !" + +msgid "USB drive not found!" +msgstr "Aucun disque USB n'a été trouvé !" + +msgid "USB Mass Storage" +msgstr "Périphérique de stockage USB" + +msgid "Vertical" +msgstr "Vertical" + +msgid "Video" +msgstr "Vidéo" + +msgid "Video Mode" +msgstr "Mode Vidéo" + +msgid "VM8: Unknown page type!" +msgstr "VM8 : Type de page inconnu !" + +msgid "VM16: Unknown page type!" +msgstr "VM16 : Type de page inconnu !" + +msgid "VM32: Unknown page type!" +msgstr "VM32 : Type de page inconnu !" + +msgid "Wiimote" +msgstr "Wiimote" + +msgid "Wiimote Orientation" +msgstr "Orientation de la Wiimote" + +msgid "Yes" +msgstr "Oui" + +msgid "Zapper" +msgstr "Nintendo Zapper" + +msgid "Zapper Crosshair" +msgstr "Réticule du Zapper" diff --git a/source/menu.cpp b/source/menu.cpp index 3ce22bb..57857fa 100644 --- a/source/menu.cpp +++ b/source/menu.cpp @@ -1815,17 +1815,16 @@ static int MenuGameSettings() videoBtn.SetEffectGrow(); #ifdef HW_RVL - GuiText wiiControlsBtnTxt1("Match Wii", 22, (GXColor){0, 0, 0, 255}); + GuiText wiiControlsBtnTxt1("Match Wii Controls", 22, (GXColor){0, 0, 0, 255}); #else - GuiText wiiControlsBtnTxt1("Match GC", 22, (GXColor){0, 0, 0, 255}); + GuiText wiiControlsBtnTxt1("Match GC Controls", 22, (GXColor){0, 0, 0, 255}); #endif - GuiText wiiControlsBtnTxt2("Controls", 22, (GXColor){0, 0, 0, 255}); if (GCSettings.WiiControls) sprintf(s, "ON"); else sprintf(s, "OFF"); - GuiText wiiControlsBtnTxt3(s, 18, (GXColor){0, 0, 0, 255}); - wiiControlsBtnTxt1.SetPosition(0, -16); - wiiControlsBtnTxt2.SetPosition(0, +8); - wiiControlsBtnTxt3.SetPosition(0, +28); + GuiText wiiControlsBtnTxt2(s, 18, (GXColor){0, 0, 0, 255}); + wiiControlsBtnTxt1.SetPosition(0, -10); + wiiControlsBtnTxt1.SetWrap(true, btnLargeOutline.GetWidth()-30); + wiiControlsBtnTxt2.SetPosition(0, +30); GuiImage wiiControlsBtnImg(&btnLargeOutline); GuiImage wiiControlsBtnImgOver(&btnLargeOutlineOver); GuiImage wiiControlsBtnIcon(&iconWiiControls); @@ -1834,7 +1833,6 @@ static int MenuGameSettings() wiiControlsBtn.SetPosition(0, 250); wiiControlsBtn.SetLabel(&wiiControlsBtnTxt1, 0); wiiControlsBtn.SetLabel(&wiiControlsBtnTxt2, 1); - wiiControlsBtn.SetLabel(&wiiControlsBtnTxt3, 2); wiiControlsBtn.SetImage(&wiiControlsBtnImg); wiiControlsBtn.SetImageOver(&wiiControlsBtnImgOver); wiiControlsBtn.SetIcon(&wiiControlsBtnIcon); @@ -1919,7 +1917,7 @@ static int MenuGameSettings() GCSettings.WiiControls ^= 1; if (GCSettings.WiiControls) sprintf(s, "ON"); else sprintf(s, "OFF"); - wiiControlsBtnTxt3.SetText(s); + wiiControlsBtnTxt2.SetText(s); wiiControlsBtn.ResetState(); } /*else if(cheatsBtn.GetState() == STATE_CLICKED)