Marat-Tanalin / bsnes-mt

bsnes-based SNES emulator featuring integer (pixel-perfect) scaling, PNG screenshots, multi­language user interface, built-in hotkeys, bug fixes, etc.
http://tanalin.com/en/projects/bsnes-mt/
Other
54 stars 5 forks source link

Create fr.txt #15

Closed KarLKoX-FR closed 3 years ago

KarLKoX-FR commented 3 years ago

A full french translation. I hope there are not too many mistakes.

Marat-Tanalin commented 3 years ago

Many thanks, will check the translation in a few days. After a quick check, there are some minor issues:

You can fix these issues via an extra commit in this same pull request, or I could do this myself if you have any technical difficulties with that (please let me know).

KarLKoX-FR commented 3 years ago

Hi, I have trouble pushing my modifications : git stuck in saying that i have to pull some commit before pushing mines. Even i do it, it continue to say the same thing.

You can find the updated file here : https://drive.google.com/file/d/1mZhWoejPdtKEo2WdYpNLPgeIzF1Kl04G/view?usp=sharing

Marat-Tanalin commented 3 years ago

Thanks. Unfortunately Google Drive says there is no access, when trying to access the page you referred to, even after logging-in that got required recently.

For what it’s worth, GitHub says the following under the latest comment on this page:

Add more commits by pushing to the master branch on KarLKoX-FR/bsnes-mt.

So you should just add a commit into your existing fork, and it should be automatically added to this pull request.

KarLKoX-FR commented 3 years ago

Ok, i managed to commit my modifications by resolving the conflits, copy/paste again my modifications and then by merging. Sorry if this commit is a bit messy :p

Marat-Tanalin commented 3 years ago

A short update: checking the translation is in progress, it just takes longer than I expected.

KarLKoX-FR commented 3 years ago

Ok, no worries :)

Marat-Tanalin commented 3 years ago

So the checking is completed. First off, I would like to note that I’m not a French speaker, so my main helpers are machine translation, dictionaries and some training materials/articles in internet. I do NOT consider machine translation better in any way than a translation done by a French-speaking human like you. That’s why humans and their contributions are so important.

I think your translation is totally fine as is, so please consider my comments/questions just as a way to potentially make the translation even better. Please don’t blindly fix things that you believe don’t need to be fixed: instead please say what and why you think is better. I can only suppose, while you hopefully know for sure. The purpose is a dialog and finding out the best options.

To simplify the process, I decided to break my comments into parts. Let’s start with relatively long but simple things.

Marat-Tanalin commented 3 years ago

Spaces around punctuation + French quotation marks («»)

While checking the translation, I somewhat learned French a bit 🙂 and discovered that in French, it is customary to insert a space before and after all complex (two+ part) punctuation marks and symbols, including : ; « » ! ? % $ #. So I was apparently wrong when I said after a quick check, that spaces were unneeded before question marks (?) and colons (:).

So it makes sense to add spaces before and after:

Also, the English quotation marks (“”) should be replaced with French quotation marks («»).

Marat-Tanalin commented 3 years ago

Unneeded capitalization

In some strings, capitalization (uppercased first letter of each or some words) is maintained while it is not encouraged and may even make no sense in languages other than English:

Marat-Tanalin commented 3 years ago

Sauvegarder vs. Enregistrer

I noticed that machine translation often suggests the “enregistrer” word where you usually prefer the “sauvegarder” word as a translation of English “save”. What do you think? Are those two words interchangeable? The strings that contain the “sauvegarder” word, for what it’s worth:

Marat-Tanalin commented 3 years ago

Translations identical to original English strings

Translations of the following strings are identical to the original English-language strings. Is this intentional and correct?

By the way, it probably makes sense to translate the About.Bsnes.copyright string as if the original English string was “bsnes team” like in the recent community version of bsnes. I plan to update the English string correspondingly.

Marat-Tanalin commented 3 years ago

etat/état: inconsistent diacritic marks

Diacritic marks are used inconsistently in the E/e letter in the “etat” word (english “state”). Do I understand correctly that it’s acceptable to omit the diacritic mark and write “etat”, but the “état” variant with the mark is still slightly more correct? If so, it probably makes sense to consistently use “état” everywhere.

Specifically, diacritic marks are missing here (“etat”):

But the marks are there in the following strings (“état”):

KarLKoX-FR commented 3 years ago

Spaces around punctuation + French quotation marks («»)

While checking the translation, I somewhat learned French a bit 🙂 and discovered that in French, it is customary to insert a space before and after all complex (two+ part) punctuation marks and symbols, including : ; « » ! ? % $ #. So I was apparently wrong when I said after a quick check, that spaces were unneeded before question marks (?) and colons (:).

So it makes sense to add spaces before and after:

  • question marks (?):

    • Common.AreYouSure;
    • Menu.File.OpenRecentGame.ClearList.confirm.title;
    • Menu.File.OpenRecentGame.ClearList.confirm;
    • Settings.Drivers.changeConfirm.title;
    • Settings.Drivers.changeConfirm;
    • Tools.LoadState.RemoveAllStates.confirm.title;
    • Tools.LoadState.RemoveAllStates.confirm;
    • Tools.CheatEditor.remove.confirm.title;
    • Tools.CheatEditor.remove.confirm;
    • Tools.StateManager.remove.confirm.title;
    • Tools.StateManager.remove.confirm;
    • Game.unverifiedGameWarning;
    • Game.unverifiedGameWarning.alwaysQuestion.title;
    • Game.unverifiedGameWarning.alwaysQuestion;
    • Browser.Delete.FailedToDelete;
    • Browser.SaveFile.fileExists.title;
    • Browser.SaveFile.fileExists;
    • Patch.ipsWarning;
  • colons (:):

    • Menu.Settings.Output.parInsteadOfAr — not sure in the case of ratios though, given that it’s not regular punctuation; what do you think as a French speaker?
    • Settings.Drivers.changeConfirm;
    • Settings.noteGameRestart;
    • Settings.Drivers.Video.ExclusiveMode.tooltip;
    • Settings.Drivers.Audio.DynamicRate.tooltip;
    • Settings.Drivers.syncModePresets.requirements;
    • Settings.Drivers.syncModePresets.DynamicRateControl.success;
    • Game.unverifiedGameWarning;
  • exclamation marks (!):

    • Settings.Audio.Volume.tooltip;
  • percents (%) where spaces are missing:

    • Settings.Audio.Volume.tooltip;
    • Settings.Audio.Balance.tooltip;
    • StatusIcon.verifiedRom.tooltip;
  • quotation marks (“”):

    • Settings.Hotkeys.CombinationalLogic.tooltip;
    • Settings.Hotkeys.Rewind.enableFirst;
    • Settings.Compatibility.dsp.EchoShadowRam.tooltip;
    • ResetDrivers.message;
    • Patch.ipsWarning;
  • after the number symbol (#) in the Common.number string (but not before the symbol, because it’s used in contexts where a space before it is there anyway if there is preceding text).

Also, the English quotation marks (“”) should be replaced with French quotation marks («»).

Hi Marat 🙂 You are right and here are my remarks :

KarLKoX-FR commented 3 years ago

Unneeded capitalization

In some strings, capitalization (uppercased first letter of each or some words) is maintained while it is not encouraged and may even make no sense in languages other than English:

  • Menu.Settings.Size.FullScreenMode;
  • Menu.Settings.Size.PseudoFullScreenMode;
  • Menu.Settings.Output.PixelPerfect;
  • Settings.Video.ColorAdjustment;
  • Settings.Enhancements.RunAhead — not sure, the entire translation string looks strange;
  • Settings.Enhancements.hdMode7.PerspectiveCorrection;
  • Settings.Enhancements.hdMode7.HdToSdMosaic;
  • Settings.Drivers.Video.FullScreenMonitor — capitalization is even added to “Plein”, though in the original string, the only capitalized word is the first one in the sentence just because it’s the first one;
  • Settings.Drivers.syncModePresets.AdaptiveSync;
  • Settings.Drivers.syncModePresets.DynamicRateControl;
  • Tools.LoadState;
  • About.Website — “Website” is translated as “Site Web”, where “Web” is capitalized. Is this intentional? Is it customary in French to capitalize “Web” or was is capitalized accidentally just because the English-language string starts with that word?
  • Browser.AllFiles;
  • Movies.SaveMovie.

In french, capitalizing each word is also correct. I can capitalize only the first word if it is the target.

KarLKoX-FR commented 3 years ago

Sauvegarder vs. Enregistrer

I noticed that machine translation often suggests the “enregistrer” word where you usually prefer the “sauvegarder” word as a translation of English “save”. What do you think? Are those two words interchangeable? The strings that contain the “sauvegarder” word, for what it’s worth:

  • Settings.Emulator.General.autoSaveMemory;
  • Settings.Emulator.General.autoSaveStateOnUnload;
  • Tools.SaveState;
  • Browser.SaveFile;
  • Movies.SaveMovie.

"Sauvegarder" and "Enregistrer" are both corrects. But there is (for me) a subtle difference where "Sauvegarder" have a the notion of preservation, something that must not be tampered with. "Enregistrer" is often used when you have to take note of something, physically or not. Examples :

This is why both terms are used :

But if you prefere, i can modify all "Sauvegarder" words to "Enregistrer" in order to homogenize the translation.

KarLKoX-FR commented 3 years ago

Translations identical to original English strings

Translations of the following strings are identical to the original English-language strings. Is this intentional and correct?

  • Settings.Video.Luminance;
  • Settings.Video.Saturation;
  • Settings.Video.Gamma;
  • Settings.Audio.Volume;
  • Settings.Audio.Balance;
  • Settings.Input.Port;
  • Settings.Paths.Patches;
  • Settings.Enhancements.Overclocking;
  • Settings.Enhancements.Dsp.Audio;
  • Settings.Compatibility.dsp.Audio;
  • About.Version;
  • About.Copyright;
  • About.Bsnes.copyright;
  • Devices.Gamepad.

By the way, it probably makes sense to translate the About.Bsnes.copyright string as if the original English string was “bsnes team” like in the recent community version of bsnes. I plan to update the English string correspondingly.

No mistakes here : the french words are the same as in english ! :D Two exceptions :

Let me know your preferences :)

KarLKoX-FR commented 3 years ago

etat/état: inconsistent diacritic marks

Diacritic marks are used inconsistently in the E/e letter in the “etat” word (english “state”). Do I understand correctly that it’s acceptable to omit the diacritic mark and write “etat”, but the “état” variant with the mark is still slightly more correct? If so, it probably makes sense to consistently use “état” everywhere.

Specifically, diacritic marks are missing here (“etat”):

  • Settings.Paths.States;
  • Tools.SaveState;
  • Tools.LoadState;
  • Tools.StateManager.Category.ManagedStates;
  • Tools.StateManager.Category.QuickStates.

But the marks are there in the following strings (“état”):

  • Settings.Emulator.General.autoSaveStateOnUnload;
  • Settings.Emulator.Rewind.Length.states;
  • Tools.LoadState.SelectedStateSlot
  • Tools.LoadState.RemoveAllStates;
  • Tools.LoadState.RemoveAllStates.confirm.title;
  • Tools.LoadState.RemoveAllStates.confirm;
  • Tools.StateManager;
  • Tools.StateManager.AddState;
  • Tools.StateManager.RenameState;
  • Tools.StateManager.remove.confirm.title;
  • Tools.StateManager.remove.confirm;
  • Hotkeys.LoadUndoState;
  • Hotkeys.LoadRedoState;
  • Hotkeys.DecrementStateSlot;
  • Hotkeys.IncrementStateSlot.

You are correct but this is a mistake from me and, like you, i prefer the word with the diacritic (even if without it, this is acceptable in french) I will fix the words without the diacritic.

Marat-Tanalin commented 3 years ago

Spaces around punctuation + French quotation marks («»)

[...]

  • question marks (?) : right but in french, only one space before, no one after, i will apply this modification,

I suspect “space after” means “at least one space after”, not an extra one. So there is probably no contradiction. Or are there cases when zero or, on the contrary, more than one consecutive spaces are used after punctuation/symbols in French?

  • exclamation marks (!) : a mistake ? There are no exclamation marks (!) ;)

I provided the id of the string that has one: Settings.Audio.Volume.tooltip: “[...] if possible!” (line 108 in the current en.txt version in the repo).

  • percents (%) : in french, there is no rule. Having a space before or not are both corrects. I have a preference to not adding a space before. If you prefer with a space before, just tell me to do so ;)

In Russian, I prefer no space before %. So if both options are OK in French, let’s not add a space before %.

  • Common.number : in french, there is no rule after the # symbol. I can leave it as it is or as suggested, i can add a space after : i will apply the modification you prefer.

Let’s keep it as is then, with no extra space.

Marat-Tanalin commented 3 years ago

Unneeded capitalization

In some strings, capitalization (uppercased first letter of each or some words) is maintained while it is not encouraged and may even make no sense in languages other than English: [...]

In french, capitalizing each word is also correct. I can capitalize only the first word if it is the target.

I would prefer not to use each-word capitalization given that I’m considering removing it (though not decided yet) even from the English translation.

  • Settings.Enhancements.RunAhead : this is the rare case where the translation was difficult. I choose the one wich is the more understandable and the more compact. The real translation could be "Exécution à l'avance" but i think less users will understand its purpose.

As an option, it may make sense to provide the original term in parens after the translation (“Execution-A venir (Run-Ahead)”), like I did in the Russian translation. The heading in the “Enhancements” section of settings, where the string is used, has quite enough space.

  • About.Website : "Web" or "web" are corrects. No usage in french, i can change to "web" as it seems that capitalizing each word is not encouraged :)

If both “Web” and “web” are acceptable, let’s use the lowercase (“web”) one.

Marat-Tanalin commented 3 years ago

Sauvegarder vs. Enregistrer

I noticed that machine translation often suggests the “enregistrer” word where you usually prefer the “sauvegarder” word as a translation of English “save”. What do you think? Are those two words interchangeable? [...]

"Sauvegarder" and "Enregistrer" are both corrects. But there is (for me) a subtle difference where "Sauvegarder" have a the notion of preservation, something that must not be tampered with. [...]

Based on your explanation/info and screenshots and other sources in internet, looks like “Enregistrer” is often used and is quite customary in the context of saving files (including Photoshop and 3D-design software named Catia).

So it probably makes sense to replace “Sauvegarder” with “Enregistrer” only in the Browser.SaveFile string (though I suspect it isn’t even used in the corresponding-component part used specifically in bsnes UI) while keeping other strings as is.

Marat-Tanalin commented 3 years ago

Translations identical to original English strings

Translations of the following strings are identical to the original English-language strings. Is this intentional and correct? [...]

No mistakes here : the french words are the same as in english ! :D Two exceptions :

  • Overclocking : it is understandable by everyone but a french word exists : "Surcadencement" but it is rarely used,
  • Copyright : this word is understandable by everyone. Again, there is a french word for it wich is : "Droits d'auteur"

Let’s not change anything in this regard then.

And please take the following part of my original comment into account too:

By the way, it probably makes sense to translate the About.Bsnes.copyright string as if the original English string was “bsnes team” like in the recent community version of bsnes. I plan to update the English string correspondingly.

In other words, please provide a translation of “bsnes team” to French if possible. :-)

Marat-Tanalin commented 3 years ago

etat/état: inconsistent diacritic marks

Diacritic marks are used inconsistently in the E/e letter in the “etat” word (english “state”). Do I understand correctly that it’s acceptable to omit the diacritic mark and write “etat”, but the “état” variant with the mark is still slightly more correct? If so, it probably makes sense to consistently use “état” everywhere. Specifically, diacritic marks are missing here (“etat”):

  • Settings.Paths.States;
  • Tools.SaveState;
  • Tools.LoadState;
  • Tools.StateManager.Category.ManagedStates;
  • Tools.StateManager.Category.QuickStates.

[...]

You are correct but this is a mistake from me and, like you, i prefer the word with the diacritic (even if without it, this is acceptable in french) I will fix the words without the diacritic.

So if both are equivalent, let’s consistenly use the “état” word with the diacritic mark everywhere.

Marat-Tanalin commented 3 years ago

“Dynamic rate control”, “Adaptive sync” — inconsistent translations

“Dynamic rate control”

Also note that, as I understand it, “rate” in “Dynamic rate control” means “sample rate” (or sampling rate) (like 44100 Hz), so “Dynamic rate control” should probably be translated as if it was “Dynamic sample-rate control” or “Dynamic control of sample rate” or, as an option, simply “Dynamic sample rate”.

“Adaptive sync”

KarLKoX-FR commented 3 years ago

Spaces around punctuation + French quotation marks («»)

[...]

  • question marks (?) : right but in french, only one space before, no one after, i will apply this modification,

I suspect “space after” means “at least one space after”, not an extra one. So there is probably no contradiction. Or are there cases when zero or, on the contrary, more than one consecutive spaces are used after punctuation/symbols in French?

I think I misunderstood : I thought that it was a space after the question marks. In French, there is no space after the question marks but always one before. And there is always one after the word preceding the question mark. This is the modification i will apply.

  • exclamation marks (!) : a mistake ? There are no exclamation marks (!) ;)

I provided the id of the string that has one: Settings.Audio.Volume.tooltip: “[...] if possible!” (line 108 in the current en.txt version in the repo).

Oh, I'm sorry, I'm the one who erroneously deleted the exclamation mark.

  • percents (%) : in french, there is no rule. Having a space before or not are both corrects. I have a preference to not adding a space before. If you prefer with a space before, just tell me to do so ;)

In Russian, I prefer no space before %. So if both options are OK in French, let’s not add a space before %.

Copy that ! :sunglasses:

  • Common.number : in french, there is no rule after the # symbol. I can leave it as it is or as suggested, i can add a space after : i will apply the modification you prefer.

Let’s keep it as is then, with no extra space.

Copy that² ! :sunglasses:

KarLKoX-FR commented 3 years ago

Unneeded capitalization

In some strings, capitalization (uppercased first letter of each or some words) is maintained while it is not encouraged and may even make no sense in languages other than English: [...]

In french, capitalizing each word is also correct. I can capitalize only the first word if it is the target.

I would prefer not to use each-word capitalization given that I’m considering removing it (though not decided yet) even from the English translation.

ok, request taken into account :heavy_check_mark:

  • Settings.Enhancements.RunAhead : this is the rare case where the translation was difficult. I choose the one wich is the more understandable and the more compact. The real translation could be "Exécution à l'avance" but i think less users will understand its purpose.

As an option, it may make sense to provide the original term in parens after the translation (“Execution-A venir (Run-Ahead)”), like I did in the Russian translation. The heading in the “Enhancements” section of settings, where the string is used, has quite enough space.

ok, i ve added "(Run Ahead)" like in the russian translation :bulb:

  • About.Website : "Web" or "web" are corrects. No usage in french, i can change to "web" as it seems that capitalizing each word is not encouraged :)

If both “Web” and “web” are acceptable, let’s use the lowercase (“web”) one.

ok, request taken into account :heavy_check_mark:

KarLKoX-FR commented 3 years ago

Sauvegarder vs. Enregistrer

I noticed that machine translation often suggests the “enregistrer” word where you usually prefer the “sauvegarder” word as a translation of English “save”. What do you think? Are those two words interchangeable? [...]

"Sauvegarder" and "Enregistrer" are both corrects. But there is (for me) a subtle difference where "Sauvegarder" have a the notion of preservation, something that must not be tampered with. [...]

Based on your explanation/info and screenshots and other sources in internet, looks like “Enregistrer” is often used and is quite customary in the context of saving files (including Photoshop and 3D-design software named Catia).

So it probably makes sense to replace “Sauvegarder” with “Enregistrer” only in the Browser.SaveFile string (though I suspect it isn’t even used in the corresponding-component part used specifically in bsnes UI) while keeping other strings as is.

I agree : the word "Enregistrer" makes more sens, in French, when used with files. The string Browser.SaveFile was modified :heavy_check_mark:

KarLKoX-FR commented 3 years ago

Translations identical to original English strings

Translations of the following strings are identical to the original English-language strings. Is this intentional and correct? [...]

No mistakes here : the french words are the same as in english ! :D Two exceptions :

  • Overclocking : it is understandable by everyone but a french word exists : "Surcadencement" but it is rarely used,
  • Copyright : this word is understandable by everyone. Again, there is a french word for it wich is : "Droits d'auteur"

Let’s not change anything in this regard then.

And please take the following part of my original comment into account too:

By the way, it probably makes sense to translate the About.Bsnes.copyright string as if the original English string was “bsnes team” like in the recent community version of bsnes. I plan to update the English string correspondingly.

In other words, please provide a translation of “bsnes team” to French if possible. :-)

Ah yes, I read too fast :satisfied: I suggest : "Équipe bsnes". The string Browser.SaveFile was modified ✔️ (i can rollback if you prefer another translation)

KarLKoX-FR commented 3 years ago

etat/état: inconsistent diacritic marks

Diacritic marks are used inconsistently in the E/e letter in the “etat” word (english “state”). Do I understand correctly that it’s acceptable to omit the diacritic mark and write “etat”, but the “état” variant with the mark is still slightly more correct? If so, it probably makes sense to consistently use “état” everywhere. Specifically, diacritic marks are missing here (“etat”):

  • Settings.Paths.States;
  • Tools.SaveState;
  • Tools.LoadState;
  • Tools.StateManager.Category.ManagedStates;
  • Tools.StateManager.Category.QuickStates.

[...]

You are correct but this is a mistake from me and, like you, i prefer the word with the diacritic (even if without it, this is acceptable in french) I will fix the words without the diacritic.

So if both are equivalent, let’s consistenly use the “état” word with the diacritic mark everywhere.

ok, request taken into account ✔️

Btw, i have also fixed this strings by adding the '^' diacritic mark to the word "Etes" :

KarLKoX-FR commented 3 years ago

“Dynamic rate control”, “Adaptive sync” — inconsistent translations

“Dynamic rate control”

  • “le contrôle dynamique de la vitesse”:

    • Settings.Drivers.Video.Synchronize.tooltip;
    • Settings.Drivers.syncModePresets.DynamicRateControl.success.
  • “Controle Dynamique du Taux”:

    • Settings.Drivers.syncModePresets.DynamicRateControl — also the second “o” in “controle” lacks diacritic mark, probably accidentally;
  • “le contrôle de (la) vitesse dynamique” (also inconsistent “de” and “de la”, probably accidentally):

    • Settings.Audio.Skew.tooltip (“de”);
    • Settings.Drivers.syncModePresets.DynamicRateControl.failure (“de la”);
  • Untranslated “Dynamic Rate Control” as is:

    • Settings.Drivers.syncModePresets.requirements.

Also note that, as I understand it, “rate” in “Dynamic rate control” means “sample rate” (or sampling rate) (like 44100 Hz), so “Dynamic rate control” should probably be translated as if it was “Dynamic sample-rate control” or “Dynamic control of sample rate” or, as an option, simply “Dynamic sample rate”.

I homogenised the translation of "Dynamic Rate Control" to "Contrôle dynamique du taux". Thus, each messages will refere to the option intented.

“Adaptive sync”

  • “synchronisation adaptative”:

    • Settings.Drivers.Video.ExclusiveMode.tooltip;
    • Settings.Drivers.Audio.Synchronize.tooltip;
    • Settings.Drivers.syncModePresets.AdaptiveSync.failure (twice); I dont' understand : twice ?
  • “Synchronisation Adaptive” — “ta” is probably missing between “Adap” and “tive”:

    • Settings.Drivers.syncModePresets.AdaptiveSync;

Fixed "adaptive" translation to the correct one : "adaptative".

  • Untranslated “Adaptive Sync”:

    • Settings.Drivers.syncModePresets.requirements.

Translated to "Synchronisation adaptative"

I will wait your anwser about my remark in bold before committing. :hourglass:

Marat-Tanalin commented 3 years ago

“Adaptive sync”

  • “synchronisation adaptative”: [...]
    • Settings.Drivers.syncModePresets.AdaptiveSync.failure (twice); I dont' understand : twice ?

[...] I will wait your anwser about my remark in bold before committing.

“adaptive sync” is used twice in the original English string: once in the first sentence and also in the second sentence:

Settings.Drivers.syncModePresets.AdaptiveSync.failure = " Sorry, the current driver configuration is not compatible with adaptive sync mode. Adaptive sync requires audio-synchronization support. "

That was a minor note meant just to prevent taking one of the occurences into account without accounting for the second one. :-)

KarLKoX-FR commented 3 years ago

“Adaptive sync”

  • “synchronisation adaptative”: [...]

    • Settings.Drivers.syncModePresets.AdaptiveSync.failure (twice); I dont' understand : twice ?

[...] I will wait your anwser about my remark in bold before committing.

“adaptive sync” is used twice in the original English string: once in the first sentence and also in the second sentence:

Settings.Drivers.syncModePresets.AdaptiveSync.failure = " Sorry, the current driver configuration is not compatible with adaptive sync mode. Adaptive sync requires audio-synchronization support. "

That was a minor note meant just to prevent taking one of the occurences into account without accounting for the second one. :-)

Ah yes ! I have just understood :grin:

Marat-Tanalin commented 3 years ago

Missing diacritic marks

Some words seem to lack diacritic marks that machine-translated strings have. The cases where I’m not sure are with a question mark at the end. In other cases (items not ending with “?”), I’m sure to some extent, though still may be wrong. 🙂 Some minor issues with the same strings are also mentioned.

Marat-Tanalin commented 3 years ago

Basically one big list of mixed issues left, I’m going to post it tomorrow or so.

Marat-Tanalin commented 3 years ago

Mixed issues/questions

Here is the last set of issues/questions for now. I plan to accept the pull request once the discussed/resolved corrections (listed and potentially discussed below and listed and already discussed and resolved above) are applied.

KarLKoX-FR commented 3 years ago

Missing diacritic marks

Some words seem to lack diacritic marks that machine-translated strings have. The cases where I’m not sure are with a question mark at the end. In other cases (items not ending with “?”), I’m sure to some extent, though still may be wrong. 🙂 Some minor issues with the same strings are also mentioned.

  • Common.Success: "Succes" → "Succès".
  • Common.Failure, Settings.Drivers.Video.failedToInitialize, Settings.Drivers.Audio.failedToInitialize, Settings.Drivers.Input.failedToInitialize, Browser.Delete.FailedToDelete: "Echec" → "Échec".
  • Menu.Settings.Output.Scale, Settings.Enhancements.hdMode7.Scale: "Echelle" → "Échelle".
  • Menu.Settings.Size.FullScreenMode, Menu.Settings.Size.PseudoFullScreenMode: "Ecran" → "Écran". Also, machine translation uses a space between "plein" and "écran" (what’s more correct?). Also, unneeded capitalization.

Both are correct but, in fact, the usage is to NOT include a '-' between "plein" and "écran",

  • Menu.Settings.Output.Stretch: "Etirer" → "Étirer".
  • Menu.Help.About: "A propos" → "À propos". Also, machine translation suggests "de" after propos: "À propos de", e.g. "About the application" → "À propos de l’application". In the wild, the corresponding Help-menu item in MPC-HC has "de" between "propos" and "MPC-HC".

Right : i forgot to add "de" just after the "propos" word. :thumbsup:

  • Settings.Hotkeys.CombinationalLogic.tooltip: "Détermine" → "Déterminé"? But Google Translate believes it’s an adjective, not a verb, so I’m quite unsure here.

"Détermine" without the diacritic is the good one :wink:

  • Settings.Emulator: "Emulateur" → "Émulateur".
  • Settings.Emulator.General.UseNativeFileDialogs: "boites" → "boîtes" ("i" → "î").

Both are correct. The word with the "î" (old style usage) is bound to disappear.

  • Settings.Enhancements.hdMode7.HdToSdMosaic: "Mosaique" → "Mosaïque" ("i" → "ï").
  • Settings.Drivers.Video.ExclusiveMode.tooltip: "honore" → "honoré"?

"honore" without the diacritic is the good one :wink:

  • Settings.Drivers.Audio.DynamicRate.tooltip: "Ajuste" → "Ajusté"?

"Ajuste" without the diacritic is the good one :wink:

  • Tools.StateManager.Preview: "Previsualiser" → "Prévisualiser".
  • Browser.Delete.confirm.item: "Elément selectionné" → "Élément sélectionné". Also, the first-word capitalization is unneeded, because it’s a nonfirst part of a sentence that substitutes | in Browser.Delete.confirm.
  • Browser.Delete.confirm.items: "Elements" → "Éléments". Also, the first-word capitalization is unneeded, as in the singular Browser.Delete.confirm.item.

I fixed the string Browser.Delete.confirm :

I have done a complete pass for missing diactrics and i found (i hope there is no collision with your next comment) :

I will wait your GO before i commit. I will see your next comment this weekend :watch:

KarLKoX-FR commented 3 years ago

Mixed issues/questions

Here is the last set of issues/questions for now. I plan to accept the pull request once the discussed/resolved corrections (listed and potentially discussed below and listed and already discussed and resolved above) are applied.

  • Common.Disabled: "Disabled" is translated as "Désactiver", which is an infinitive that the original string is not. It should probably be "Désactivée" or so.

Oh, yes ! I didn't understand it so :satisfied:

  • Common.Fps: The translation is identical to the original English string ("fps"). But "fps" is an abbreviation for "frames per second", which is translated by machine translation as "images par seconde". So it would be natural to expect that its translated abbreviation should be "ips" instead of "fps". Or is it customary in French to use the English "fps" abbreviation as is?

Both are correct and understandable ("fps" = "frames par secondes"). But yes, "ips" is more french accurate.

  • Common.number: The translation is identical to the original English string ("#"), but some sources in internet (1, 2) say that the proper French number sign is "n°" or "nᵒ". Also, according to internet sources, a space is needed between "n°" and the number after it. What do you think?

Both are correct and understandable. "N°" is more often used in written documents (word, excel ...) where "#" is more computer related. For our use case, i think that "#" make more sense. Btw, you can see that this character ("#") is also used in the french translation for Mesen for the mapping (it's author is also french :wink:) And i use it in my own (pc engine) emulator.

  • Menu.File.OpenGame, Menu.File.OpenRecentGame, Menu.File.CloseGame, Tools.CheatEditor.noCheats, Game.GameOpened, Game.GameClosed, Game.GameReset, Game.GameOpeningCancelled: "game" (singular) is translated as "jeux" which, as I understand it and as it’s usually translated by machine translation back to English, means plural "games". Shouldn’t singular "game" be translated as "jeu" without "x"; or may "jeux" mean singular "game" too, depending on context?

Right : "jeux" is the plural of "jeu". For some cases, it can be contextual. I fixed those who need the plural version + these two strings :

  • Menu.Settings.Size.ShrinkWindowToSize: "Shrink Window to Size" is translated as "Réduire la fenêtre à l’écran", where "l’écran" is automatically translated back to English as "screen" instead of "size", that does not match the original meaning. Is there maybe a more unambiguous translation? If this helps, the original English string could be treated as "Shrink window to frame size" or "Shrink window to image size".

Mmhhh, ok, i think that this translation will be more accurate : "Adapter la fenêtre aux dimensions de l'image". I think that the meaning of the sentence is thus preserved.

  • Menu.Settings.Output.ShowOverscanArea: "overscan" is translated as "surbalayage", but Yandex Translate (machine translation) translates "overscan" as "overscan" in French (the same as the original English word) and Google Translate lists "overscan" as one of the two possible translations besides "surbalayage" suggested by default. Also, there is info in internet that the "overscan" and "underscan" English words are used as is in French. Examples provided by the Reverso dictionary use both "overscan" and "surbalayage". What of the two words is more commonly used in French?

Here we see a limit to automatic translators : "overscan" is not a french word. The correct is indeed "surbalayage", for sure.

  • Menu.Settings.Output.HiresBlurEmulation: "Hires" ("High resolution" abbreviation) is translated as "HR". The translated string would be more clear if translated without such extreme abbreviating — e.g. as if the original string was unabbreaviated "High-resolution blur emulation" (or "Emulation of blur in high-resolution mode") instead of "Hires blur emulation".

HR mean "Haute Résolution", the translation is correct. I can modify it to "HD" (= "Haute Définition") if you think the setence is more accurate. Or i can modify to "Émulation du flou HauteRésolution"

  • Menu.Settings.MuteAudio, Settings.Audio.MuteWhenUnfocused: "Mute" is translated as "Couper", which machine translation translates back to English as "Cut". There is a French word "Muet" which is e.g. used as a "Mute" translation in the tooltip of the "Mute" button in the MPC-HC player. But looks like the "Muet" word is a noun, not a verb. Yandex Translate provides examples with "Coupez" and "Couper": "Mute audio" → "Coupez le son" (not sure why "z" instead of "r"); "TV mute!" → "Couper son!", while Google Translate translates "mute audio" as "couper le son", with "audio muet" as an option. The "Microsoft" dictionary in Multitran lists "désactiver le son" besides "muet". "désactiver le son" is translated correctly by both Yandex Translate ("turn off the sound") and Google Translate ("mute the sound"), same with "couper le son" which Google Translate even marks as a "Verified" translation for English "mute". I tend to like using "couper le son" (with just "le son" added to your original "couper" and instead of "l’audio" where it exists) or optionally "désactiver le son" instead of both lone "couper" and "couper l’audio". What do you think?

"Muet", "Couper", "Sourdine" are all correct (yes, the french language can be weird sometimes) "Couper" is the infinitive version (of the verb) "Coupez" is used when you talk to someone ("you cut") "Couper l'audio" and "Couper le son" means the exact same thing. If we want to be more gentle with the user, "Désactiver le son" is my preference.

  • Settings.Emulator.FastForward.mute, "Settings.Emulator.Rewind.mute": "Mute" is translated as "Sourdine" which is inconsistent with "Couper" and additionally is apparently a noun instead of a verb. Probably makes sense to translate as "Couper le son" instead too.

"Sourdine" is correct : it is an old word but understandable by french people. Je peux modifier en "Désactiver le son ..." in order to be more homogeneous in the translation.

  • Menu.Settings.ShowStatusBar: "Show Status Bar" is translated as "Afficher la barre de status". But based on machine translation, looks like the "status" word (unlike "statuT") does not exist in French at all. Machine translation (Yandex Translate, Google Translate) and Multitran dictionary service translate "status bar" as "barre d’état". There is also a Wikipedia article in French, about status bar as the same "barre d’état". So I suspect "barre d’état" is the established translation of "status bar" in French. For what it’s worth, Multitran additionally lists "zone de statut" as one of possible translations. I tend to like "barre d’état". What do you think?

This is a typical mistake done by a lot of french people, including me :sweat_smile: The correct word is "statut" with the 't' character. "Barre de statut" and "Barre d'état" are both equivalent. I can modify it to "Barre d'état" if you prefer. The string "Menu.Settings.Output.scalingInfo" has to be modified too.

  • Menu.Settings.OpenSettingsFolder: "settings" is translated as "configuration", but Yandex Translate machine translation translates it as "paramètres". The "Microsoft, Canada" dictionary in the Multitran dictionary service has "paramètres" as the translation. Also, based on screenshots in internet, the French version of Windows 10 uses "Paramètres" as the title of the root section of its settings. Also, the Settings string in the same translation file by you is translated as "Paramètres". So "Paramètres" should probably be used in Menu.Settings.OpenSettingsFolder too. If the point of using "configuration" instead of "paramètres" was that "Open settings folder" is about settings file, the string could be translated as if it was "Open settings-file folder" or "Open folder of settings file".

That's right : i understood this as "Open settings folder", this is why i used the word "configuration" :grimacing: I modified to "Ouvrir le dossier des paramètres"

  • Settings.Video.Luminance: The translation is identical to the original English string ("Luminance"). "Luminance" is a synonym for "brightness" which is translated by Multitran as "luminosité" listed in the "Microsoft" dictionary with a correct definition "The amount of light that is emitted by a computer monitor or picture displayed on the monitor". What of the two words ("luminance" and "luminosité") is more accurate and preferred in your opinion?

"Luminance" and "Luminosité" are both equivalent. However, "Luminance" is more for a technical user so yes, i will modify to "Luminosité".

  • Settings.Video.DimVideoWhenIdle: "Dim video when idle" is translated as a different, more verbose phrase. That itself is fine, but that translation contains the "l’intensité" word which translates back to English as "intensity" instead of "luminance"/"brightness". So it would probably make sense to use "luminosité" (translates back to English as "brightness") as a more unambiguous translation of "luminance"/"brightness". What do you think?

Yes, here again, the word "luminosité" will be understandable by more french users, even if they are no-technicals.

  • Settings.Audio.Skew: "Skew" is translated as "Compensation". I find the whole English term somewhat confusing and would like it to be translated as if it was "Sample rate" or "Rate offset" (I’m considering changing the original English string the same way).

This is another english word where i had difficulties to translated. :sweat_smile: I suggest : "Décalage du taux" or if we want to be more precise "Décalage du taux d'échantillonnage"

  • Settings.Audio.Skew.tooltip: "Hz" is translated as "HZ" with uppercase "Z". Is this a typo, or is this customary in French? The other strings in the same translation file by you — Common.Hz and Settings.Drivers.Audio.DynamicRate.tooltip — both use "Hz" with lowercase "z".

This is a typo mistake, modified to "Hz" :persevere:

  • Settings.Audio.Balance.tooltip: Dot is missing after the first sentence.
  • Settings.Input.WhenFocusIsLost.PauseEmulation: "Pause emulation" => "Mettre en pause l’émulation". The translation looks totally fine, it is even marked as a "Verified" translation of "Pause" in Google Translate. But there are shorter options. Yandex Translate translates as "Pause de l’émulation", but looks like "Pause" is a noun, not a verb. Google Translate translates "Pause emulation" as "Suspendre l’émulation". The "Microsoft" dictionary in Multitran has "suspendre" in the correct meaning too: "To stop the operation of a program or execution of a command temporarily". So it’s perfectly OK to keep your current translation as is, just would like to know what you think about "Suspendre l’émulation" as a shorter option that matches the translation sort-of-recommended by Microsoft via the corresponding Multitran dictionary.

It is ok for me to use "Suspendre", it have the same meaning and is shorter :thumbsup:

  • Tools.RunMode.PauseEmulation: Translated inconsistently with Settings.Input.WhenFocusIsLost.PauseEmulation.
  • Settings.Input.MouseXAxis, Settings.Input.MouseYAxis: "Mouse X-axis" => "Souris axe-X"; "Mouse Y-axis" => "Souris axe-Y": Probably fine as is, but not sure because Yandex Translate machine translation translates "Souris axe" back to English as "Axis mouse" that has totally different meaning compared with the original phrases. At the same time, both Yandex Translate and Google Translate consistently translate "Axis of mouse" (equivalent to "Mouse axis") as "Axe de la souris" (Yandex Translate — with "L’" before "axe") that consistently translates back to "Axis of mouse". So it may make sense to translate as "Axe X/Y de la souris" or so. What do you think?

"Souris axe-X/Y" and "Axe-X/Y de la souris" are both correct. However, after reflection, Axe-X de la souris" is more elegant.

  • Settings.Hotkeys.Rewind.enableFirst: Apparently translated as if the original English string did not contain the "support" word it actually contains. Is this intentional? Is it possible to take that word into account in the translation?

This was forgotten in the translation. However, i prefer to use the word "option" --> "Veuillez d’abord activer l'option de rembobinage dans le menu « Paramètres » → « Émulateur »" instead of "support".

  • Settings.Paths.Screenshots: "Screenshots" is translated as abstract "Captures", but Google Translate translates as "Captures d’écran" (with "d’écran" added) and it’s marked as verified. Also, the string Tools.TakeScreenshot in the same translation file by you, already contains an explicit translation of the "screen" word: "d’écran" ("take a screenshot" => "prendre une capture d'écran"). So it probably makes sense to translate this string as "Captures d’écran" or so, instead of just "Captures". Is this fine?

I thought it was implicit but it is ok to add "d'écran".

  • Settings.Emulator.FastForward.FrameSkip: "Frame skip" is translated as "Saut d’image" which machine translation translates back to English as "Image jump" which does not quite match the meaning of the original English string. It may make sense to translate as if the original English string was "Number of frames to skip" (probably "nombre d’images à sauter" as in the Settings.Emulator.FastForward.FrameSkip.tooltip translation).

"Saut d'image" is correct, i think that, in french, it is enough explicit and we don't need to explicit precise that it is about "the number of". The spanich translation use the same french translation (both languages have a lot of similarities) If you really be precise, here is another suggestion : "Nombre d'images à éviter" ("à sauter" is a bit familiar in this context)

  • Settings.Emulator.FastForward.FrameSkip.tooltip: Same issue with "saut d’images" (in the second sentence) as in Settings.Emulator.FastForward.FrameSkip. Probably makes sense to translate as if the original English string contained "Skipping frames [...]" (instead of "Frame skipping [...]"). Both Yandex Translate and Google Translate consistenly translate "Skipping frames [...]" as "Sauter des images [...]". Would this change be correct?

My suggestion : " Définit le nombre d’images à éviter lors de l’avance rapide. Éviter le rendu d’images permet une vitesse d’avance rapide maximale plus élevée. " Thus, the sentence is exactly the same as in the english version.

  • Settings.Enhancements.RunAhead: "Run-Ahead" => "Execution-A venir". We already discussed translation of this string. This time the issue is about missing diacritic marks, the correct string should probably be with "Exécution" instead of "Execution" and "À" instead of "A". And "À" should probably be in lowercase: "à", because we decided not to use each-word capitalization in the whole translation. Also, there should probably be spaces around the dash, and the dash should maybe be em dash (—) instead of hyphen (-) as long as "A" belongs to "venir" and not to "Execution". Like this as a result: "Exécution — à venir". Is that correct? And separately, is using em dashes in French correct, or is the narrower en dash (–) usually used instead (feel free to use any of them that better matches what is customary in French)?

Normally, in french, we don't use the "-" in this case. There is no grammatical reason to add the '-' character. The correct translation should be "Exécution à venir (Run-Ahead)" (without any '-') Or, i can modify the translation to "Exécution anticipée (Run-Ahead)"

  • Settings.Enhancements.hdMode7.Supersampling: "Supersampling" => "Superéchantillonnage". Not sure, but it may make sense to add a hyphen after "Super" in the translation, otherwise machine translation struggles to correctly translate it from/to English. Would "Super-échantillonnage" be correct?

I have better, a new translation (more accurate) : "Suréchantillonnage"

  • Settings.Enhancements.Coprocessors.PreferHle: "Prefer high-level emulation (HLE)" => "Préférer l’émulation haut-niveau (HLE)". Machine translation is almost the same, but with "de" before "haut" and with no hyphen between "haut" and "niveau". Would "Préférer l’émulation de haut niveau (HLE)" be correct? Does "de" make a crucial difference in terms of the phrase meaning?

Ok for "Préférer l’émulation de haut niveau (HLE)"

  • Settings.Compatibility.ppu.NoVramBlocking: "blocking" is translated as "verrouillage" which translates back to English as "lock"/"locking" instead of "blocking". It may make sense to replace "verrouillage" with "blocage" that translates back to English as "blocking" like in the original English string. Would that be correct?

My bad. Modified from "verrouillage" to "blocage".

  • Settings.Drivers.Video.FullScreenMonitor.tooltip: The translation is probably fine as is, but if possible, I would prefer a translation matching the original English string more precisely, namely regarding this part: "monitor [which] video is sent to [when already] in full-screen mode" instead of something that might be misunderstood as "monitor used [for unknown purpose] during switching to full-screen mode". Is such a more precise translation possible?

Ok, the more precise translation could be : "Détermine vers quel moniteur le signal vidéo est envoyé en mode plein écran."

  • Settings.Drivers.Video.ExclusiveMode.tooltip: The first sentence seems to be translated without taking the "Causes" verb into account. Could it be taken into account?

Ok, my new translation : "Provoque le mode plein écran à prendre le dessus sur tous les moniteurs."

  • Settings.Drivers.syncModePresets.DynamicRateControl.success: The translation does not account for "refresh rate" that the original English string contains twice: "60 Hz refresh rate for NTSC games, 50 Hz refresh rate for PAL games".

Translation modified to "un taux de rafraîchissement de 60 Hz pour les jeux NTSC, un taux de rafraîchissement de 50 Hz pour les jeux PAL." But, my preference is :

"Le contrôle dynamique du taux de rafraîchissement exige que votre moniteur fonctionne à : 60 Hz pour les jeux NTSC, 50 Hz pour les jeux PAL."

It avoids repetition and the sentence keep the english meaning.

  • Tools.LoadState.SelectedStateSlot: "Selected state slot" => "Emplacement d’état sélectionné". Probably correct as is. Just in case: are you sure you understand that "Selected" in the original English phrase is a form of a verb that means an action that has just been done, as if the original English string was "State slot has been selected"?

Yes, here, there was an action : this is why i used "sélectionné" (conjugated verb) and not "sélectionner" :wink:

  • Tools.LoadState.RedoLastUndo: "Redo" is translated as "Rétablir". Probably fine as is, but machine translation translates "Rétablir" back to English as "Restore" instead of "Redo". It may make sense to replace "Rétablir" with "Refaire" that translates back to English exactly as "Redo". "Refaire" is also already used in your translation of Hotkeys.LoadRedoState. And then in Tools.LoadState.UndoLastSave, it would probably make sense to use the cognate "Défaire" word instead of "Annuler". What do you think?

Correct : "Refaire" is more accurate. (i have also added "la" --> "Refaire la dernière annulation" In the same way, i have added "la" to Tools.LoadState.UndoLastSave -->"Annuler la précédente sauvegarde" However, the translation for Tools.LoadState.UndoLastSave is correct : in LibreOffice and Notepad++, "Annuler" is used for Undo.

  • Tools.StateManager.QuickStates.Redo: Same issue as with Tools.LoadState.RedoLastUndo: "Rétablir" should maybe be replaced with "Refaire".

Modified to "Refaire".

  • Hotkeys.LoadRedoState: "redo" is translated as "refaire" which is inconsitent with "rétablir" in two other related strings: Tools.LoadState.RedoLastUndo, Tools.StateManager.QuickStates.Redo.

It is now consistent :grin:

  • Tools.RunMode.FrameAdvance, Hotkeys.FrameAdvance: The both strings are translated the same. But they are about different things: Tools.RunMode.FrameAdvance is about enabling the whole "Frame Advance" mode, while Hotkeys.FrameAdvance is about moving to next frame while the mode is already enabled. It probably makes sense to translate these two strings as if they were the following, with "Frame Advance" added in parens after the translation for clarity (like we did with Run-Ahead):

    • Tools.RunMode.FrameAdvance = "Frame by frame" (may probably be translated as "Image par image (Frame Advance)" or so);
    • Hotkeys.FrameAdvance = "Next frame (Frame Advance)" (possible translation according to machine translation: "Image suivante (Frame Advance)" [with "Frame Advance" untranslated] or maybe with "Frame Advance" translated: "Image suivante (frame by frame)").

Ok, i now understand. My modifications are : Tools.RunMode.FrameAdvance = "Image par image (Frame Advance)" Hotkeys.FrameAdvance = "Image suivante (Frame Advance)"

  • Tools.Movie.Stop: The translation is identical to the original English string ("Stop"). Probably fine as is, but machine translation and the "Microsoft" dictionary in Multitran suggest "Arrêter", "Arrêt" or "Arrêtez". (To be fair, Google Translate lists "stop" as one of possible options.) What do you think?

No problem for "Arrêter", it is less "brutal" than the word "Stop" without adjective

  • Tools.CheatFinder.Scan: "Scan" is translated as "Scanner". Probably fine as is, but just in case: there is an alternative translation of the "Scan" word in the "Microsoft" dictionary in Multitran: "Analyser", with a definition that quite matches starting a process of searching cheats: "A systematic examination of files or other data to identify content or patterns that meet specific criteria". Wouldn’t then "Analyser" better correspond to the cheat-searching context?

"Scanner" and "Analyser" are both equivalent : no winner here. But it is ok for me for "Analyser", it makes more sens in our use case.

  • Tools.CheatEditor: The first "E" in "Editeur" lacks diacritic mark: "Éditeur".
  • Tools.CheatEditor.EnableCheats.tooltip: I’m considering replacing the original English string "Master enable for all cheat codes." with the shorter "Enable cheat codes.", so it would be nice to get its translation in advance and maybe use that translation right now in the French translation.

Ok, modified to "Activation des codes de triche."

  • Tools.CheatEditor.EnableCheats.enabled: Looks like translated as if the original English string contained "All" while it does not contain "All", so "Tous" is probably unneeded in the translation.

Oh right, fixed to "Les codes de triche actifs sont activés" (note : i removed the 's' to "triches", this was a mistake)

  • Game.unverifiedGameWarning.alwaysQuestion.title: "Disable warning?" is translated as "Désactiver les avertissements?" which translates back to English as "Disable warnings?" that does not match the original meaning: disable not all warnings, but a specific one. It should be translated as if it was "Disable the warning?" (with "the") that translates by machine translation to "Désactiver l’avertissement?" that also matches the translation you used in the related Game.unverifiedGameWarning.alwaysQuestion string displayed in the same window. Would "Désactiver l’avertissement?" be correct?

Ok, i now understand the meaning of the sentence. Fixed to "Désactiver l'avertissement ?"

  • Program.CapturedScreenshot: "Captured screenshot" is translated as "Capture d’écran effetuée" that translates back to English as "Effected screenshot". Machine translation suspects that there is a typo and suggests "effectuée" (with "c" added between "effe" and "tuée"), and with that change, the phrase translates back to English fine: "Screenshot taken". To be fair, "Screenshot taken" is not quite correct grammatically in English, the correct one should probably be "Screenshot has been taken"; not sure whether that "has been" should/could be reflected in French translation, your comment would be appreciated.

A typographical error. No need to translate "has been", here, the user understand that an action has been done. (by using the conjugated verb "effectuée")

  • About.SameBoy.description, About.Bsnes.description: "emulator" is translated as "Emulateur" that lacks diacritic mark that machine translation has: "Émulateur". Also, machine translation translates with "de" between "émulateur" and the subject of emulation: e.g. "emulator of console" → "émulateur de console". So "Emulateur Super Game Boy" and "Emulateur Super Nintendo" should probably be changed to "Émulateur de Super Game Boy" and "Émulateur de Super Nintendo" correspondingly. Would that be correct?

Added the missing diactric 'É'. For the missing "de", both are correct : with and without. But in order to be more elegant, I add it :relaxed:

  • Browser.Create.EnterName: "Enter a name" is translated as "Saisir un nom". Probably fine as is, but machine translation translates as "Entrez un nom" (with "Entrez" instead of "Saisir"), and Google Translate displays the "Verified" mark. The "Microsoft" dictionary in Multitran has "entrer" as a translation with a suitable definition: "To enter information by means of the keyboard or other input method". What do you think? Wouldn’t "Entrez un nom" or "Entrer un nom" more unambiguous and therefore preferred?

"Saisir" is more eleguant thant "Entrer". My suggestion is to keep this translation. Windows 10 use this word

image

  • Browser.CreateFolder.EnterNewFolderName: "Enter a new-folder name" is translated as "Saisir un nom pour le nouveau-dossier". Machine translation suggests a different and slightly shorter translation, with "Entrez" intead of "Saisir" again: "Entrez un nouveau nom de dossier". Your comment would be appreciated.

Same comment as above

  • Browser.Delete.FailedToDelete: "Echec" lacks diacritic mark: "Échec".
  • StatusIcon.verifiedRom.tooltip, StatusIcon.unverifiedRom.tooltip: The translation of "PCB" is identical to original English "PCB". But given that it is an abbreviation for "printed circuit board", shouldn’t it be translated correspondingly (like "CDCI" or "CCI" for "carte de circuit imprimé" or CI for "circuit imprimé"), or is it customary to use the English "PCB" abbreviation as is, without translating it?

In the electronic world, the PCB term is used. (here is an example : https://www.altium.com/fr/solution/what-is-a-pcb ) There is an official abbreviation ("CI") but i think that it is less understandable (except for those who works in electronic) So i can keep PCB, or translate to "L'émulation de la carte du circuit imprimé" or translate to "L'émulation de l'IC" I have a preference for the second translation.

  • ResetDrivers.message: The --resetdrivers command-line option is translated as Resetdrivers though it should be untouched, because command-line options are the same for all languages and are not a subject for translation.

fixed.

  • Rewind.HistoryExhausted: "Rewind history exhausted" is translated as "Historique du rembobinage saturé". That translates back to English by machine translation as "History of saturated rewind" which has quite different meaning compared with the original English string. There is probably a more unambiguous translation, or maybe the current translation is just erroneous. Yandex Translate and Google Translate suggest "épuisé" or "épuisée" instead of "saturé". As a totally non-French-speaker, I, through trial and error, constructed the phrase "L'rembobinage histoire épuisée" that both (Yandex/Google) machine-translation services adequately translate to English as "The rewind story exhausted" or "Rewinding story exhausted" correspondingly — maybe this somewhat helps you to find a more optimal translation.

I think my translation keep the meaning of the original english sentence. Here, the user understand "ok, there is not enough space in the history stack to save more rewind history" So i think that "saturé" is more accurate than "épuisé" wich can also means "tired".

  • Movies.formatNotSupported: "Movie format is not supported" is translated as "Le format du film n’est pas pris en charge". Machine translation provides the same translation, but with "de" instead of "du". Are you sure "du" is correct (and therefore machine translation is wrong, that is quite possible)?

"du" is correct, it is more accurate than "de" wich can be more ambigous. ("format" can also be used when talking about the format ... of the screen --> 16/6, 4/3)

  • Hotkeys.LoadUndoState: "Load Undo State" is translated as "Charger annulation d’état" that translates by machine translation back to English as "Load status/state cancellation" that has a totally different meaning than the original English string. The reason is probably that there is "d’" before "état" which is inconsistent with Hotkeys.LoadRedoState where there is no "d’": "Load Redo State" → "Charger refaire état". This "d’" does indeed affect translation: without "d’", translating back to English results in a phrase more close to the original English phrase: "Charger annulation état" without "d’" translates as "Load cancellation status" instead of "Load state cancellation" when translating "Charger annulation d’état". So maybe "Charger annulation état" is finally the correct translation. What do you think?

It is a little complex to explain but here, my translation of "Load Undo State" is correct : i have to add "d'" in this context. Without it, it is a little strange, see it as a passive adjectif : it is related to "state".

"Load Redo State" → "Charger refaire état" : again, my translation is correct. With "annuler", i have "annulation" so i can add the "d'" But with "Refaire" there is no equivalent : "refairation" is not a french word :yum: The closest word i see is "Reproduction" so another translation could be "Charger reproduction d'état" and then, i can add the magic "d'" :grin:

  • The "frame" English word is translated inconsistenly in different strings: in some cases it’s "trame", while in other cases it’s "image". Is that fine and intentional? Is it possible / does it make sense to stick to one of them thoughout the whole translation?

"trame" is correct but i agree, "image" is is easier to understand. Modified all "trame(s)" terms to "image(s)"

  • A source in internet says: "Remember that du, de la, de l’ and des can NEVER be missed out in French, even if there is no word in English.". But some translated strings (can’t recall specific ones here, but you probably know what they are) lack those du, de la, etc. Is that fine and intentional?

It depends on the context and if we want to be in action mode ( (the app) "do this" and "do that") or in full sentence writing mode ( "the app do this").

Marat-Tanalin commented 3 years ago

Menu.Settings.Size.FullScreenMode, Menu.Settings.Size.PseudoFullScreenMode: "Ecran" → "Écran". Also, machine translation uses a space between "plein" and "écran" (what’s more correct?). Also, unneeded capitalization.

Both are correct but, in fact, the usage is to NOT include a '-' between "plein" and "écran".

So let’s use space instead of hyphen (like you said you already did with Settings.Drivers.Video.FullScreenMonitor) and use "écran" with diacritic mark.

Settings.Emulator.General.UseNativeFileDialogs: "boites" → "boîtes" ("i" → "î").

Both are correct. The word with the "î" (old style usage) is bound to disappear.

If "boîtes" with diacritic mark is considered obsolete, let’s probably keep the current pure-latin "boites" then.

Settings.Drivers.Video.ExclusiveMode.tooltip: "honore" → "honoré"?

"honore" without the diacritic is the good one wink

Settings.Drivers.Audio.DynamicRate.tooltip: "Ajuste" → "Ajusté"?

"Ajuste" without the diacritic is the good one wink

Ok, let’s keep "honore" and "Ajuste" without diacritic mark then. Out of curiosity, do "honoré" and "ajusté" have different meanings compared with "honore" and "ajuste" correspondingly, or do those with diacritic marks not actually exist in French at all (and so machine-translation services are wrong)?

I fixed the string Browser.Delete.confirm :

  • before : "Êtes vous sûr de vouloir supprimer de manière permanente le |"
  • after : ""Êtes vous sûr de vouloir supprimer de manière permanente l' |"
    As it is the begining of the sentence, in french, we say "l'élément" and not "le élémént"

Shouldn’t the space after "l’" be removed then ("l' |" → "l'|") (please just remove if it should)? Also, is it ok for it to be "l’" for both singular and plural forms ("item"/"items"), or is "le" more universal (if correct in general in this context) in this or some other regard?

I have done a complete pass for missing diactrics and i found (i hope there is no collision with your next comment) :
[...]
I will wait your GO before i commit.

Looks fine, GO. :-)

Marat-Tanalin commented 3 years ago

Mixed issues/questions

Here is the last set of issues/questions for now. I plan to accept the pull request once the discussed/resolved corrections (listed and potentially discussed below and listed and already discussed and resolved above) are applied.

  • Common.Disabled: "Disabled" is translated as "Désactiver", which is an infinitive that the original string is not. It should probably be "Désactivée" or so.

Oh, yes ! I didn't understand it so :satisfied:

Ok, whatever the needed correction is. :-)

  • Common.Fps: The translation is identical to the original English string ("fps"). But "fps" is an abbreviation for "frames per second", which is translated by machine translation as "images par seconde". So it would be natural to expect that its translated abbreviation should be "ips" instead of "fps". Or is it customary in French to use the English "fps" abbreviation as is?

Both are correct and understandable ("fps" = "frames par secondes"). But yes, "ips" is more french accurate.

So if "ips" is familiar and understandable for french people, let’s probably use "ips" instead of "fps".

  • Common.number: The translation is identical to the original English string ("#"), but some sources in internet (1, 2) say that the proper French number sign is "n°" or "nᵒ". Also, according to internet sources, a space is needed between "n°" and the number after it. What do you think?

Both are correct and understandable. "N°" is more often used in written documents (word, excel ...) where "#" is more computer related. For our use case, i think that "#" make more sense.
Btw, you can see that this character ("#") is also used in the french translation for Mesen for the mapping (it's author is also french :wink:)

In fact most of programmers just don’t care much about typography (it’s just not what they are focused on, and not a problem in general for hobby projects, just a nice thing to have) and just use the characters available for typing directly via keyboard. But "#" is OK as long as it’s as common and understandable as "N°" in French.

And i use it in my own (pc engine) emulator.

Interesting. Where are the emulator and probably its source code available?

  • Menu.File.OpenGame, Menu.File.OpenRecentGame, Menu.File.CloseGame, Tools.CheatEditor.noCheats, Game.GameOpened, Game.GameClosed, Game.GameReset, Game.GameOpeningCancelled: "game" (singular) is translated as "jeux" which, as I understand it and as it’s usually translated by machine translation back to English, means plural "games". Shouldn’t singular "game" be translated as "jeu" without "x"; or may "jeux" mean singular "game" too, depending on context?

Right : "jeux" is the plural of "jeu". For some cases, it can be contextual. I fixed those who need the plural version + these two strings :

  • Game.unverifiedGameWarning.title
  • Tools.LoadState.RemoveAllStates.confirm

Ok.

  • Menu.Settings.Size.ShrinkWindowToSize: "Shrink Window to Size" is translated as "Réduire la fenêtre à l’écran", where "l’écran" is automatically translated back to English as "screen" instead of "size", that does not match the original meaning. Is there maybe a more unambiguous translation? If this helps, the original English string could be treated as "Shrink window to frame size" or "Shrink window to image size".

Mmhhh, ok, i think that this translation will be more accurate : "Adapter la fenêtre aux dimensions de l'image". I think that the meaning of the sentence is thus preserved.

OK, let’s use that new translation.

  • Menu.Settings.Output.ShowOverscanArea: "overscan" is translated as "surbalayage", but Yandex Translate (machine translation) translates "overscan" as "overscan" in French (the same as the original English word) and Google Translate lists "overscan" as one of the two possible translations besides "surbalayage" suggested by default. Also, there is info in internet that the "overscan" and "underscan" English words are used as is in French. Examples provided by the Reverso dictionary use both "overscan" and "surbalayage". What of the two words is more commonly used in French?

Here we see a limit to automatic translators : "overscan" is not a french word. The correct is indeed "surbalayage", for sure.

Ok, let’s keep "surbalayage" then. It may also make sense to add " (overscan)" after "surbalayage" for extra clarity.

  • Menu.Settings.Output.HiresBlurEmulation: "Hires" ("High resolution" abbreviation) is translated as "HR". The translated string would be more clear if translated without such extreme abbreviating — e.g. as if the original string was unabbreaviated "High-resolution blur emulation" (or "Emulation of blur in high-resolution mode") instead of "Hires blur emulation".

HR mean "Haute Résolution", the translation is correct. I can modify it to "HD" (= "Haute Définition") if you think the setence is more accurate. Or i can modify to "Émulation du flou HauteRésolution"

"Émulation du flou haute résolution" (with two last words unabbreviated, lowercase, and with a space between them) looks fine and clear, let’s use it.

  • Menu.Settings.MuteAudio, Settings.Audio.MuteWhenUnfocused: "Mute" is translated as "Couper", which machine translation translates back to English as "Cut". There is a French word "Muet" which is e.g. used as a "Mute" translation in the tooltip of the "Mute" button in the MPC-HC player. But looks like the "Muet" word is a noun, not a verb. Yandex Translate provides examples with "Coupez" and "Couper": "Mute audio" → "Coupez le son" (not sure why "z" instead of "r"); "TV mute!" → "Couper son!", while Google Translate translates "mute audio" as "couper le son", with "audio muet" as an option. The "Microsoft" dictionary in Multitran lists "désactiver le son" besides "muet". "désactiver le son" is translated correctly by both Yandex Translate ("turn off the sound") and Google Translate ("mute the sound"), same with "couper le son" which Google Translate even marks as a "Verified" translation for English "mute". I tend to like using "couper le son" (with just "le son" added to your original "couper" and instead of "l’audio" where it exists) or optionally "désactiver le son" instead of both lone "couper" and "couper l’audio". What do you think?

"Muet", "Couper", "Sourdine" are all correct (yes, the french language can be weird sometimes)
"Couper" is the infinitive version (of the verb)
"Coupez" is used when you talk to someone ("you cut")
"Couper l'audio" and "Couper le son" means the exact same thing.
If we want to be more gentle with the user, "Désactiver le son" is my preference.

Let’s use "Désactiver le son" then.

  • Settings.Emulator.FastForward.mute, "Settings.Emulator.Rewind.mute": "Mute" is translated as "Sourdine" which is inconsistent with "Couper" and additionally is apparently a noun instead of a verb. Probably makes sense to translate as "Couper le son" instead too.

"Sourdine" is correct : it is an old word but understandable by french people.
Je peux modifier en "Désactiver le son ..." in order to be more homogeneous in the translation.

Yeah, let’s change to "Désactiver le son ..." for consistency with other mute-related strings.

  • Menu.Settings.ShowStatusBar: "Show Status Bar" is translated as "Afficher la barre de status". But based on machine translation, looks like the "status" word (unlike "statuT") does not exist in French at all. Machine translation (Yandex Translate, Google Translate) and Multitran dictionary service translate "status bar" as "barre d’état". There is also a Wikipedia article in French, about status bar as the same "barre d’état". So I suspect "barre d’état" is the established translation of "status bar" in French. For what it’s worth, Multitran additionally lists "zone de statut" as one of possible translations. I tend to like "barre d’état". What do you think?

This is a typical mistake done by a lot of french people, including me :sweat_smile:
The correct word is "statut" with the 't' character.
"Barre de statut" and "Barre d'état" are both equivalent.
I can modify it to "Barre d'état" if you prefer.

Let’s use "barre d’état" instead of "barre de status" then.

The string "Menu.Settings.Output.scalingInfo" has to be modified too.

Yeah, good catch.

  • Menu.Settings.OpenSettingsFolder: "settings" is translated as "configuration", but Yandex Translate machine translation translates it as "paramètres". The "Microsoft, Canada" dictionary in the Multitran dictionary service has "paramètres" as the translation. Also, based on screenshots in internet, the French version of Windows 10 uses "Paramètres" as the title of the root section of its settings. Also, the Settings string in the same translation file by you is translated as "Paramètres". So "Paramètres" should probably be used in Menu.Settings.OpenSettingsFolder too. If the point of using "configuration" instead of "paramètres" was that "Open settings folder" is about settings file, the string could be translated as if it was "Open settings-file folder" or "Open folder of settings file".

That's right : i understood this as "Open settings folder", this is why i used the word "configuration" :grimacing:
I modified to "Ouvrir le dossier des paramètres"

Ok.

  • Settings.Video.Luminance: The translation is identical to the original English string ("Luminance"). "Luminance" is a synonym for "brightness" which is translated by Multitran as "luminosité" listed in the "Microsoft" dictionary with a correct definition "The amount of light that is emitted by a computer monitor or picture displayed on the monitor". What of the two words ("luminance" and "luminosité") is more accurate and preferred in your opinion?

"Luminance" and "Luminosité" are both equivalent.
However, "Luminance" is more for a technical user so yes, i will modify to "Luminosité".

  • Settings.Video.DimVideoWhenIdle: "Dim video when idle" is translated as a different, more verbose phrase. That itself is fine, but that translation contains the "l’intensité" word which translates back to English as "intensity" instead of "luminance"/"brightness". So it would probably make sense to use "luminosité" (translates back to English as "brightness") as a more unambiguous translation of "luminance"/"brightness". What do you think?

Yes, here again, the word "luminosité" will be understandable by more french users, even if they are no-technicals.

Ok. Let’s use "Luminosité" then in both cases.

  • Settings.Audio.Skew: "Skew" is translated as "Compensation". I find the whole English term somewhat confusing and would like it to be translated as if it was "Sample rate" or "Rate offset" (I’m considering changing the original English string the same way).

This is another english word where i had difficulties to translated. :sweat_smile:
I suggest : "Décalage du taux" or if we want to be more precise "Décalage du taux d'échantillonnage"

Let’s use "Décalage du taux" as it’s shorter and thus better fits the corresponding UI layout.

  • Settings.Audio.Skew.tooltip: "Hz" is translated as "HZ" with uppercase "Z". Is this a typo, or is this customary in French? The other strings in the same translation file by you — Common.Hz and Settings.Drivers.Audio.DynamicRate.tooltip — both use "Hz" with lowercase "z".

This is a typo mistake, modified to "Hz" :persevere:

Ok.

  • Settings.Audio.Balance.tooltip: Dot is missing after the first sentence.
  • Settings.Input.WhenFocusIsLost.PauseEmulation: "Pause emulation" => "Mettre en pause l’émulation". The translation looks totally fine, it is even marked as a "Verified" translation of "Pause" in Google Translate. But there are shorter options. Yandex Translate translates as "Pause de l’émulation", but looks like "Pause" is a noun, not a verb. Google Translate translates "Pause emulation" as "Suspendre l’émulation". The "Microsoft" dictionary in Multitran has "suspendre" in the correct meaning too: "To stop the operation of a program or execution of a command temporarily". So it’s perfectly OK to keep your current translation as is, just would like to know what you think about "Suspendre l’émulation" as a shorter option that matches the translation sort-of-recommended by Microsoft via the corresponding Multitran dictionary.

It is ok for me to use "Suspendre", it have the same meaning and is shorter :thumbsup:

Let’s use "Suspendre l’émulation" then.

  • Tools.RunMode.PauseEmulation: Translated inconsistently with Settings.Input.WhenFocusIsLost.PauseEmulation.
  • Settings.Input.MouseXAxis, Settings.Input.MouseYAxis: "Mouse X-axis" => "Souris axe-X"; "Mouse Y-axis" => "Souris axe-Y": Probably fine as is, but not sure because Yandex Translate machine translation translates "Souris axe" back to English as "Axis mouse" that has totally different meaning compared with the original phrases. At the same time, both Yandex Translate and Google Translate consistently translate "Axis of mouse" (equivalent to "Mouse axis") as "Axe de la souris" (Yandex Translate — with "L’" before "axe") that consistently translates back to "Axis of mouse". So it may make sense to translate as "Axe X/Y de la souris" or so. What do you think?

"Souris axe-X/Y" and "Axe-X/Y de la souris" are both correct.
However, after reflection, Axe-X de la souris" is more elegant.

Ok, let’s use "Axe-X de la souris".

  • Settings.Hotkeys.Rewind.enableFirst: Apparently translated as if the original English string did not contain the "support" word it actually contains. Is this intentional? Is it possible to take that word into account in the translation?

This was forgotten in the translation. However, i prefer to use the word "option" --> "Veuillez d’abord activer l'option de rembobinage dans le menu « Paramètres » → « Émulateur »" instead of "support".

Sounds reasonable. Let’s use "l'option de". I’ll consider changing the original English string accordingly.

  • Settings.Paths.Screenshots: "Screenshots" is translated as abstract "Captures", but Google Translate translates as "Captures d’écran" (with "d’écran" added) and it’s marked as verified. Also, the string Tools.TakeScreenshot in the same translation file by you, already contains an explicit translation of the "screen" word: "d’écran" ("take a screenshot" => "prendre une capture d'écran"). So it probably makes sense to translate this string as "Captures d’écran" or so, instead of just "Captures". Is this fine?

I thought it was implicit but it is ok to add "d'écran".

I suspect lone "captures" is too broad and may mean captures of many different natures, so yeah, let’s add "d'écran".

  • Settings.Emulator.FastForward.FrameSkip: "Frame skip" is translated as "Saut d’image" which machine translation translates back to English as "Image jump" which does not quite match the meaning of the original English string. It may make sense to translate as if the original English string was "Number of frames to skip" (probably "nombre d’images à sauter" as in the Settings.Emulator.FastForward.FrameSkip.tooltip translation).

"Saut d'image" is correct, i think that, in french, it is enough explicit and we don't need to explicit precise that it is about "the number of".
The spanich translation use the same french translation (both languages have a lot of similarities)
If you really be precise, here is another suggestion : "Nombre d'images à éviter" ("à sauter" is a bit familiar in this context)

Fine to me. Machine translation translates "éviter" back to English as "avoid" instead of "skip", but that’s still fine if you believe "éviter" is understandable as "skip" in this context.

  • Settings.Emulator.FastForward.FrameSkip.tooltip: Same issue with "saut d’images" (in the second sentence) as in Settings.Emulator.FastForward.FrameSkip. Probably makes sense to translate as if the original English string contained "Skipping frames [...]" (instead of "Frame skipping [...]"). Both Yandex Translate and Google Translate consistenly translate "Skipping frames [...]" as "Sauter des images [...]". Would this change be correct?

My suggestion : "
Définit le nombre d’images à éviter lors de l’avance rapide.
Éviter le rendu d’images permet une vitesse d’avance rapide maximale plus élevée.
"
Thus, the sentence is exactly the same as in the english version.

Ok, as long as it not just translates back to English correctly, but also correct in French. :-)

  • Settings.Enhancements.RunAhead: "Run-Ahead" => "Execution-A venir". We already discussed translation of this string. This time the issue is about missing diacritic marks, the correct string should probably be with "Exécution" instead of "Execution" and "À" instead of "A". And "À" should probably be in lowercase: "à", because we decided not to use each-word capitalization in the whole translation. Also, there should probably be spaces around the dash, and the dash should maybe be em dash (—) instead of hyphen (-) as long as "A" belongs to "venir" and not to "Execution". Like this as a result: "Exécution — à venir". Is that correct? And separately, is using em dashes in French correct, or is the narrower en dash (–) usually used instead (feel free to use any of them that better matches what is customary in French)?

Normally, in french, we don't use the "-" in this case.
There is no grammatical reason to add the '-' character.
The correct translation should be "Exécution à venir (Run-Ahead)" (without any '-')
Or, i can modify the translation to "Exécution anticipée (Run-Ahead)"

Let’s use "Exécution à venir (Run-Ahead)" (without '-' before "venir") .

  • Settings.Enhancements.hdMode7.Supersampling: "Supersampling" => "Superéchantillonnage". Not sure, but it may make sense to add a hyphen after "Super" in the translation, otherwise machine translation struggles to correctly translate it from/to English. Would "Super-échantillonnage" be correct?

I have better, a new translation (more accurate) : "Suréchantillonnage"

Ok.

  • Settings.Enhancements.Coprocessors.PreferHle: "Prefer high-level emulation (HLE)" => "Préférer l’émulation haut-niveau (HLE)". Machine translation is almost the same, but with "de" before "haut" and with no hyphen between "haut" and "niveau". Would "Préférer l’émulation de haut niveau (HLE)" be correct? Does "de" make a crucial difference in terms of the phrase meaning?

Ok for "Préférer l’émulation de haut niveau (HLE)"

Ok.

  • Settings.Compatibility.ppu.NoVramBlocking: "blocking" is translated as "verrouillage" which translates back to English as "lock"/"locking" instead of "blocking". It may make sense to replace "verrouillage" with "blocage" that translates back to English as "blocking" like in the original English string. Would that be correct?

My bad.
Modified from "verrouillage" to "blocage".

Ok.

  • Settings.Drivers.Video.FullScreenMonitor.tooltip: The translation is probably fine as is, but if possible, I would prefer a translation matching the original English string more precisely, namely regarding this part: "monitor [which] video is sent to [when already] in full-screen mode" instead of something that might be misunderstood as "monitor used [for unknown purpose] during switching to full-screen mode". Is such a more precise translation possible?

Ok, the more precise translation could be : "Détermine vers quel moniteur le signal vidéo est envoyé en mode plein écran."

Ok.

  • Settings.Drivers.Video.ExclusiveMode.tooltip: The first sentence seems to be translated without taking the "Causes" verb into account. Could it be taken into account?

Ok, my new translation : "Provoque le mode plein écran à prendre le dessus sur tous les moniteurs."

Ok.

  • Settings.Drivers.syncModePresets.DynamicRateControl.success: The translation does not account for "refresh rate" that the original English string contains twice: "60 Hz refresh rate for NTSC games, 50 Hz refresh rate for PAL games".

Translation modified to "un taux de rafraîchissement de 60 Hz pour les jeux NTSC, un taux de rafraîchissement de 50 Hz pour les jeux PAL."
But, my preference is :

"Le contrôle dynamique du taux de rafraîchissement exige que votre moniteur fonctionne à :
60 Hz pour les jeux NTSC, 50 Hz pour les jeux PAL."

It avoids repetition and the sentence keep the english meaning.

I’m fine with avoiding repetition, but the new translation you suggested seems to insert "refresh rate" into the "Dynamic rate control" substring, effectively turning it into "Dynamic refresh rate control" which changes the original meaning.

We could probably avoid repetition in a way more that maintains the original meaning more accurately — probably by putting a translation of "refresh rate" into the part before colon — "… to be running at:" → "… to be running at [following] refresh rates:".

  • Tools.LoadState.SelectedStateSlot: "Selected state slot" => "Emplacement d’état sélectionné". Probably correct as is. Just in case: are you sure you understand that "Selected" in the original English phrase is a form of a verb that means an action that has just been done, as if the original English string was "State slot has been selected"?

Yes, here, there was an action : this is why i used "sélectionné" (conjugated verb) and not "sélectionner" :wink:

Ok.

  • Tools.LoadState.RedoLastUndo: "Redo" is translated as "Rétablir". Probably fine as is, but machine translation translates "Rétablir" back to English as "Restore" instead of "Redo". It may make sense to replace "Rétablir" with "Refaire" that translates back to English exactly as "Redo". "Refaire" is also already used in your translation of Hotkeys.LoadRedoState. And then in Tools.LoadState.UndoLastSave, it would probably make sense to use the cognate "Défaire" word instead of "Annuler". What do you think?

Correct : "Refaire" is more accurate. (i have also added "la" --> "Refaire la dernière annulation"
In the same way, i have added "la" to Tools.LoadState.UndoLastSave -->"Annuler la précédente sauvegarde"
However, the translation for Tools.LoadState.UndoLastSave is correct : in LibreOffice and Notepad++, "Annuler" is used for Undo.

Ok.

  • Tools.StateManager.QuickStates.Redo: Same issue as with Tools.LoadState.RedoLastUndo: "Rétablir" should maybe be replaced with "Refaire".

Modified to "Refaire".

Ok.

  • Hotkeys.LoadRedoState: "redo" is translated as "refaire" which is inconsitent with "rétablir" in two other related strings: Tools.LoadState.RedoLastUndo, Tools.StateManager.QuickStates.Redo.

It is now consistent :grin:

Ok.

  • Tools.RunMode.FrameAdvance, Hotkeys.FrameAdvance: The both strings are translated the same. But they are about different things: Tools.RunMode.FrameAdvance is about enabling the whole "Frame Advance" mode, while Hotkeys.FrameAdvance is about moving to next frame while the mode is already enabled. It probably makes sense to translate these two strings as if they were the following, with "Frame Advance" added in parens after the translation for clarity (like we did with Run-Ahead):

  • Tools.RunMode.FrameAdvance = "Frame by frame" (may probably be translated as "Image par image (Frame Advance)" or so);

  • Hotkeys.FrameAdvance = "Next frame (Frame Advance)" (possible translation according to machine translation: "Image suivante (Frame Advance)" [with "Frame Advance" untranslated] or maybe with "Frame Advance" translated: "Image suivante (frame by frame)").

Ok, i now understand.
My modifications are :
Tools.RunMode.FrameAdvance = "Image par image (Frame Advance)"
Hotkeys.FrameAdvance = "Image suivante (Frame Advance)"

Ok.

  • Tools.Movie.Stop: The translation is identical to the original English string ("Stop"). Probably fine as is, but machine translation and the "Microsoft" dictionary in Multitran suggest "Arrêter", "Arrêt" or "Arrêtez". (To be fair, Google Translate lists "stop" as one of possible options.) What do you think?

No problem for "Arrêter", it is less "brutal" than the word "Stop" without adjective

Ok, let’s use "Arrêter" instead of "Stop" then.

  • Tools.CheatFinder.Scan: "Scan" is translated as "Scanner". Probably fine as is, but just in case: there is an alternative translation of the "Scan" word in the "Microsoft" dictionary in Multitran: "Analyser", with a definition that quite matches starting a process of searching cheats: "A systematic examination of files or other data to identify content or patterns that meet specific criteria". Wouldn’t then "Analyser" better correspond to the cheat-searching context?

"Scanner" and "Analyser" are both equivalent : no winner here. But it is ok for me for "Analyser", it makes more sens in our use case.

Ok, let’s use "Analyser" instead of "Scanner".

  • Tools.CheatEditor.EnableCheats.tooltip: I’m considering replacing the original English string "Master enable for all cheat codes." with the shorter "Enable cheat codes.", so it would be nice to get its translation in advance and maybe use that translation right now in the French translation.

Ok, modified to "Activation des codes de triche."

Ok.

  • Tools.CheatEditor.EnableCheats.enabled: Looks like translated as if the original English string contained "All" while it does not contain "All", so "Tous" is probably unneeded in the translation.

Oh right, fixed to "Les codes de triche actifs sont activés" (note : i removed the 's' to "triches", this was a mistake)

Ok.

  • Game.unverifiedGameWarning.alwaysQuestion.title: "Disable warning?" is translated as "Désactiver les avertissements?" which translates back to English as "Disable warnings?" that does not match the original meaning: disable not all warnings, but a specific one. It should be translated as if it was "Disable the warning?" (with "the") that translates by machine translation to "Désactiver l’avertissement?" that also matches the translation you used in the related Game.unverifiedGameWarning.alwaysQuestion string displayed in the same window. Would "Désactiver l’avertissement?" be correct?

Ok, i now understand the meaning of the sentence.
Fixed to "Désactiver l'avertissement ?"

Ok.

  • Program.CapturedScreenshot: "Captured screenshot" is translated as "Capture d’écran effetuée" that translates back to English as "Effected screenshot". Machine translation suspects that there is a typo and suggests "effectuée" (with "c" added between "effe" and "tuée"), and with that change, the phrase translates back to English fine: "Screenshot taken". To be fair, "Screenshot taken" is not quite correct grammatically in English, the correct one should probably be "Screenshot has been taken"; not sure whether that "has been" should/could be reflected in French translation, your comment would be appreciated.

A typographical error. No need to translate "has been", here, the user understand that an action has been done. (by using the conjugated verb "effectuée")

Ok, so if I understand correctly, it should be "Capture d’écran effectuée" with just "c" added between "effe" and "tuée".

  • About.SameBoy.description, About.Bsnes.description: "emulator" is translated as "Emulateur" that lacks diacritic mark that machine translation has: "Émulateur". Also, machine translation translates with "de" between "émulateur" and the subject of emulation: e.g. "emulator of console" → "émulateur de console". So "Emulateur Super Game Boy" and "Emulateur Super Nintendo" should probably be changed to "Émulateur de Super Game Boy" and "Émulateur de Super Nintendo" correspondingly. Would that be correct?

Added the missing diactric 'É'.
For the missing "de", both are correct : with and without.
But in order to be more elegant, I add it :relaxed:

Ok.

  • Browser.Create.EnterName: "Enter a name" is translated as "Saisir un nom". Probably fine as is, but machine translation translates as "Entrez un nom" (with "Entrez" instead of "Saisir"), and Google Translate displays the "Verified" mark. The "Microsoft" dictionary in Multitran has "entrer" as a translation with a suitable definition: "To enter information by means of the keyboard or other input method". What do you think? Wouldn’t "Entrez un nom" or "Entrer un nom" more unambiguous and therefore preferred?

"Saisir" is more eleguant thant "Entrer".
My suggestion is to keep this translation.
Windows 10 use this word

  • Browser.CreateFolder.EnterNewFolderName: "Enter a new-folder name" is translated as "Saisir un nom pour le nouveau-dossier". Machine translation suggests a different and slightly shorter translation, with "Entrez" intead of "Saisir" again: "Entrez un nouveau nom de dossier". Your comment would be appreciated.

Same comment as above

Ok, let’s keep "Saisir".

  • StatusIcon.verifiedRom.tooltip, StatusIcon.unverifiedRom.tooltip: The translation of "PCB" is identical to original English "PCB". But given that it is an abbreviation for "printed circuit board", shouldn’t it be translated correspondingly (like "CDCI" or "CCI" for "carte de circuit imprimé" or CI for "circuit imprimé"), or is it customary to use the English "PCB" abbreviation as is, without translating it?

In the electronic world, the PCB term is used. (here is an example : https://www.altium.com/fr/solution/what-is-a-pcb )
There is an official abbreviation ("CI") but i think that it is less understandable (except for those who works in electronic)
So i can keep PCB, or translate to "L'émulation de la carte du circuit imprimé" or translate to "L'émulation de l'IC"
I have a preference for the second translation.

I like your suggested "L'émulation de la carte du circuit imprimé". Maybe " (PCB)" could be appended to it (at your discretion) if this would add some extra clarity.

  • ResetDrivers.message: The --resetdrivers command-line option is translated as Resetdrivers though it should be untouched, because command-line options are the same for all languages and are not a subject for translation.

fixed.

Ok.

  • Rewind.HistoryExhausted: "Rewind history exhausted" is translated as "Historique du rembobinage saturé". That translates back to English by machine translation as "History of saturated rewind" which has quite different meaning compared with the original English string. There is probably a more unambiguous translation, or maybe the current translation is just erroneous. Yandex Translate and Google Translate suggest "épuisé" or "épuisée" instead of "saturé". As a totally non-French-speaker, I, through trial and error, constructed the phrase "L'rembobinage histoire épuisée" that both (Yandex/Google) machine-translation services adequately translate to English as "The rewind story exhausted" or "Rewinding story exhausted" correspondingly — maybe this somewhat helps you to find a more optimal translation.

I think my translation keep the meaning of the original english sentence.
Here, the user understand "ok, there is not enough space in the history stack to save more rewind history"
So i think that "saturé" is more accurate than "épuisé" wich can also means "tired".

Ok, let’s keep the translation as is, with "saturé".

  • Movies.formatNotSupported: "Movie format is not supported" is translated as "Le format du film n’est pas pris en charge". Machine translation provides the same translation, but with "de" instead of "du". Are you sure "du" is correct (and therefore machine translation is wrong, that is quite possible)?

"du" is correct, it is more accurate than "de" wich can be more ambigous. ("format" can also be used when talking about the format ... of the screen --> 16/6, 4/3)

Ok.

  • Hotkeys.LoadUndoState: "Load Undo State" is translated as "Charger annulation d’état" that translates by machine translation back to English as "Load status/state cancellation" that has a totally different meaning than the original English string. The reason is probably that there is "d’" before "état" which is inconsistent with Hotkeys.LoadRedoState where there is no "d’": "Load Redo State" → "Charger refaire état". This "d’" does indeed affect translation: without "d’", translating back to English results in a phrase more close to the original English phrase: "Charger annulation état" without "d’" translates as "Load cancellation status" instead of "Load state cancellation" when translating "Charger annulation d’état". So maybe "Charger annulation état" is finally the correct translation. What do you think?

It is a little complex to explain but here, my translation of "Load Undo State" is correct : i have to add "d'" in this context. Without it, it is a little strange, see it as a passive adjectif : it is related to "state".

Ok.

"Load Redo State" → "Charger refaire état" : again, my translation is correct.
With "annuler", i have "annulation" so i can add the "d'"
But with "Refaire" there is no equivalent : "refairation" is not a french word :yum:
The closest word i see is "Reproduction" so another translation could be "Charger reproduction d'état" and then, i can add the magic "d'" :grin:

No need for magic. :-) Let’s keep as is then.

  • The "frame" English word is translated inconsistenly in different strings: in some cases it’s "trame", while in other cases it’s "image". Is that fine and intentional? Is it possible / does it make sense to stick to one of them thoughout the whole translation?

"trame" is correct but i agree, "image" is is easier to understand.
Modified all "trame(s)" terms to "image(s)"

Ok.

  • A source in internet says: "Remember that du, de la, de l’ and des can NEVER be missed out in French, even if there is no word in English.". But some translated strings (can’t recall specific ones here, but you probably know what they are) lack those du, de la, etc. Is that fine and intentional?

It depends on the context and if we want to be in action mode ( (the app) "do this" and "do that") or in full sentence writing mode ( "the app do this").

Ok, thanks.

Waiting for the corrections we decided are needed, to be applied by you via an extra commit, and I would like to finally accept your translation and merge the pull request. :-)

KarLKoX-FR commented 3 years ago

Menu.Settings.Size.FullScreenMode, Menu.Settings.Size.PseudoFullScreenMode: "Ecran" → "Écran". Also, machine translation uses a space between "plein" and "écran" (what’s more correct?). Also, unneeded capitalization.

Both are correct but, in fact, the usage is to NOT include a '-' between "plein" and "écran".

So let’s use space instead of hyphen (like you said you already did with Settings.Drivers.Video.FullScreenMonitor) and use "écran" with diacritic mark.

Settings.Emulator.General.UseNativeFileDialogs: "boites" → "boîtes" ("i" → "î").

Both are correct. The word with the "î" (old style usage) is bound to disappear.

If "boîtes" with diacritic mark is considered obsolete, let’s probably keep the current pure-latin "boites" then.

Settings.Drivers.Video.ExclusiveMode.tooltip: "honore" → "honoré"?

"honore" without the diacritic is the good one wink

Settings.Drivers.Audio.DynamicRate.tooltip: "Ajuste" → "Ajusté"?

"Ajuste" without the diacritic is the good one wink

Ok, let’s keep "honore" and "Ajuste" without diacritic mark then. Out of curiosity, do "honoré" and "ajusté" have different meanings compared with "honore" and "ajuste" correspondingly, or do those with diacritic marks not actually exist in French at all (and so machine-translation services are wrong)?

"honore" and "ajust" don't have the same meaning.

  • "honoré" (with the diacritic) can be translated to "honored" : it can never be used in the beginning of a sentence in this form
  • "honore" (without the diacritic) can be translated to "(it) honore" : it can be used wether in any position of a sentence (beginning, from the begining to the last word, at the end) The same thing applies to "ajuste" and "ajusté"

I fixed the string Browser.Delete.confirm :

  • before : "Êtes vous sûr de vouloir supprimer de manière permanente le |"
  • after : ""Êtes vous sûr de vouloir supprimer de manière permanente l' |" As it is the begining of the sentence, in french, we say "l'élément" and not "le élémént"

Shouldn’t the space after "l’" be removed then ("l' |" → "l'|") (please just remove if it should)? Also, is it ok for it to be "l’" for both singular and plural forms ("item"/"items"), or is "le" more universal (if correct in general in this context) in this or some other regard?

I just realized that "l'" can not be used for the plural form. So, in this case, we have no other choice to translate like this : Browser.Delete.confirm = "Êtes-vous sûr de vouloir supprimer de manière permanente |" Browser.Delete.confirm.item = "l'élément selectionné" Browser.Delete.confirm.items = "les éléments sélectionnés"

I removed "l'" for the Browser.Delete.confirm string and added the corresponding adjective for the rest of the question.

I have done a complete pass for missing diactrics and i found (i hope there is no collision with your next comment) : [...] I will wait your GO before i commit.

Looks fine, GO. :-)

After fixing the remaining remarks :wink:

KarLKoX-FR commented 3 years ago

Mixed issues/questions

Here is the last set of issues/questions for now. I plan to accept the pull request once the discussed/resolved corrections (listed and potentially discussed below and listed and already discussed and resolved above) are applied.

  • Common.Disabled: "Disabled" is translated as "Désactiver", which is an infinitive that the original string is not. It should probably be "Désactivée" or so.

Oh, yes ! I didn't understand it so 😆

Ok, whatever the needed correction is. :-)

  • Common.Fps: The translation is identical to the original English string ("fps"). But "fps" is an abbreviation for "frames per second", which is translated by machine translation as "images par seconde". So it would be natural to expect that its translated abbreviation should be "ips" instead of "fps". Or is it customary in French to use the English "fps" abbreviation as is?

Both are correct and understandable ("fps" = "frames par secondes"). But yes, "ips" is more french accurate.

So if "ips" is familiar and understandable for french people, let’s probably use "ips" instead of "fps".

  • Common.number: The translation is identical to the original English string ("#"), but some sources in internet (1, 2) say that the proper French number sign is "n°" or "nᵒ". Also, according to internet sources, a space is needed between "n°" and the number after it. What do you think?

Both are correct and understandable. "N°" is more often used in written documents (word, excel ...) where "#" is more computer related. For our use case, i think that "#" make more sense. Btw, you can see that this character ("#") is also used in the french translation for Mesen for the mapping (it's author is also french 😉)

In fact most of programmers just don’t care much about typography (it’s just not what they are focused on, and not a problem in general for hobby projects, just a nice thing to have) and just use the characters available for typing directly via keyboard. But "#" is OK as long as it’s as common and understandable as "N°" in French.

And i use it in my own (pc engine) emulator.

Oh, nothing revolutionary ! I code with different languages (c,c++,vb,java,c# and so on) but i like to test unknown languages : here, the language is PureBasic. (a very powerfull/portable basic) My challenge was just to see if it was possible to code a fully working pc engine emulator written with this language. My knowledges in emulation are not enough to code it from scratch so this emulator use code from other emulators :

  • cpu : mame (i used tg16emu as a basis first then mame),
  • vdc/vce : first tg16emu then mame (code from TAKEDA, toshiya's pce emulator)
  • psg : ootake (less authentic but sound better (warmer) because it fades the sound smoothly)

But the app (gui) is made 100% by me and have some (quite nice) features :

Interesting. Where are the emulator and probably its source code available?

The code is, i think, the ugliest code you can find in the earth !! :sweat_smile: In fact, I would say that it is rather the case for the main application The core part doesn't sting too much :flushed: I can send you this part if you want (I'm still going to clean up the code a little bit)

  • Menu.File.OpenGame, Menu.File.OpenRecentGame, Menu.File.CloseGame, Tools.CheatEditor.noCheats, Game.GameOpened, Game.GameClosed, Game.GameReset, Game.GameOpeningCancelled: "game" (singular) is translated as "jeux" which, as I understand it and as it’s usually translated by machine translation back to English, means plural "games". Shouldn’t singular "game" be translated as "jeu" without "x"; or may "jeux" mean singular "game" too, depending on context?

Right : "jeux" is the plural of "jeu". For some cases, it can be contextual. I fixed those who need the plural version + these two strings :

  • Game.unverifiedGameWarning.title
  • Tools.LoadState.RemoveAllStates.confirm

Ok.

  • Menu.Settings.Size.ShrinkWindowToSize: "Shrink Window to Size" is translated as "Réduire la fenêtre à l’écran", where "l’écran" is automatically translated back to English as "screen" instead of "size", that does not match the original meaning. Is there maybe a more unambiguous translation? If this helps, the original English string could be treated as "Shrink window to frame size" or "Shrink window to image size".

Mmhhh, ok, i think that this translation will be more accurate : "Adapter la fenêtre aux dimensions de l'image". I think that the meaning of the sentence is thus preserved.

OK, let’s use that new translation.

  • Menu.Settings.Output.ShowOverscanArea: "overscan" is translated as "surbalayage", but Yandex Translate (machine translation) translates "overscan" as "overscan" in French (the same as the original English word) and Google Translate lists "overscan" as one of the two possible translations besides "surbalayage" suggested by default. Also, there is info in internet that the "overscan" and "underscan" English words are used as is in French. Examples provided by the Reverso dictionary use both "overscan" and "surbalayage". What of the two words is more commonly used in French?

Here we see a limit to automatic translators : "overscan" is not a french word. The correct is indeed "surbalayage", for sure.

Ok, let’s keep "surbalayage" then. It may also make sense to add " (overscan)" after "surbalayage" for extra clarity.

  • Menu.Settings.Output.HiresBlurEmulation: "Hires" ("High resolution" abbreviation) is translated as "HR". The translated string would be more clear if translated without such extreme abbreviating — e.g. as if the original string was unabbreaviated "High-resolution blur emulation" (or "Emulation of blur in high-resolution mode") instead of "Hires blur emulation".

HR mean "Haute Résolution", the translation is correct. I can modify it to "HD" (= "Haute Définition") if you think the setence is more accurate. Or i can modify to "Émulation du flou HauteRésolution"

"Émulation du flou haute résolution" (with two last words unabbreviated, lowercase, and with a space between them) looks fine and clear, let’s use it.

OK : translated to "Émulation du flou haute résolution"

  • Menu.Settings.MuteAudio, Settings.Audio.MuteWhenUnfocused: "Mute" is translated as "Couper", which machine translation translates back to English as "Cut". There is a French word "Muet" which is e.g. used as a "Mute" translation in the tooltip of the "Mute" button in the MPC-HC player. But looks like the "Muet" word is a noun, not a verb. Yandex Translate provides examples with "Coupez" and "Couper": "Mute audio" → "Coupez le son" (not sure why "z" instead of "r"); "TV mute!" → "Couper son!", while Google Translate translates "mute audio" as "couper le son", with "audio muet" as an option. The "Microsoft" dictionary in Multitran lists "désactiver le son" besides "muet". "désactiver le son" is translated correctly by both Yandex Translate ("turn off the sound") and Google Translate ("mute the sound"), same with "couper le son" which Google Translate even marks as a "Verified" translation for English "mute". I tend to like using "couper le son" (with just "le son" added to your original "couper" and instead of "l’audio" where it exists) or optionally "désactiver le son" instead of both lone "couper" and "couper l’audio". What do you think?

"Muet", "Couper", "Sourdine" are all correct (yes, the french language can be weird sometimes) "Couper" is the infinitive version (of the verb) "Coupez" is used when you talk to someone ("you cut") "Couper l'audio" and "Couper le son" means the exact same thing. If we want to be more gentle with the user, "Désactiver le son" is my preference.

Let’s use "Désactiver le son" then.

  • Settings.Emulator.FastForward.mute, "Settings.Emulator.Rewind.mute": "Mute" is translated as "Sourdine" which is inconsistent with "Couper" and additionally is apparently a noun instead of a verb. Probably makes sense to translate as "Couper le son" instead too.

"Sourdine" is correct : it is an old word but understandable by french people. Je peux modifier en "Désactiver le son ..." in order to be more homogeneous in the translation.

Yeah, let’s change to "Désactiver le son ..." for consistency with other mute-related strings.

  • Menu.Settings.ShowStatusBar: "Show Status Bar" is translated as "Afficher la barre de status". But based on machine translation, looks like the "status" word (unlike "statuT") does not exist in French at all. Machine translation (Yandex Translate, Google Translate) and Multitran dictionary service translate "status bar" as "barre d’état". There is also a Wikipedia article in French, about status bar as the same "barre d’état". So I suspect "barre d’état" is the established translation of "status bar" in French. For what it’s worth, Multitran additionally lists "zone de statut" as one of possible translations. I tend to like "barre d’état". What do you think?

This is a typical mistake done by a lot of french people, including me 😅 The correct word is "statut" with the 't' character. "Barre de statut" and "Barre d'état" are both equivalent. I can modify it to "Barre d'état" if you prefer.

Let’s use "barre d’état" instead of "barre de status" then.

OK : translated to "barre d'état"

The string "Menu.Settings.Output.scalingInfo" has to be modified too.

Yeah, good catch.

  • Menu.Settings.OpenSettingsFolder: "settings" is translated as "configuration", but Yandex Translate machine translation translates it as "paramètres". The "Microsoft, Canada" dictionary in the Multitran dictionary service has "paramètres" as the translation. Also, based on screenshots in internet, the French version of Windows 10 uses "Paramètres" as the title of the root section of its settings. Also, the Settings string in the same translation file by you is translated as "Paramètres". So "Paramètres" should probably be used in Menu.Settings.OpenSettingsFolder too. If the point of using "configuration" instead of "paramètres" was that "Open settings folder" is about settings file, the string could be translated as if it was "Open settings-file folder" or "Open folder of settings file".

That's right : i understood this as "Open settings folder", this is why i used the word "configuration" 😬 I modified to "Ouvrir le dossier des paramètres"

Ok.

  • Settings.Video.Luminance: The translation is identical to the original English string ("Luminance"). "Luminance" is a synonym for "brightness" which is translated by Multitran as "luminosité" listed in the "Microsoft" dictionary with a correct definition "The amount of light that is emitted by a computer monitor or picture displayed on the monitor". What of the two words ("luminance" and "luminosité") is more accurate and preferred in your opinion?

"Luminance" and "Luminosité" are both equivalent. However, "Luminance" is more for a technical user so yes, i will modify to "Luminosité".

  • Settings.Video.DimVideoWhenIdle: "Dim video when idle" is translated as a different, more verbose phrase. That itself is fine, but that translation contains the "l’intensité" word which translates back to English as "intensity" instead of "luminance"/"brightness". So it would probably make sense to use "luminosité" (translates back to English as "brightness") as a more unambiguous translation of "luminance"/"brightness". What do you think?

Yes, here again, the word "luminosité" will be understandable by more french users, even if they are no-technicals.

Ok. Let’s use "Luminosité" then in both cases.

  • Settings.Audio.Skew: "Skew" is translated as "Compensation". I find the whole English term somewhat confusing and would like it to be translated as if it was "Sample rate" or "Rate offset" (I’m considering changing the original English string the same way).

This is another english word where i had difficulties to translated. 😅 I suggest : "Décalage du taux" or if we want to be more precise "Décalage du taux d'échantillonnage"

Let’s use "Décalage du taux" as it’s shorter and thus better fits the corresponding UI layout.

  • Settings.Audio.Skew.tooltip: "Hz" is translated as "HZ" with uppercase "Z". Is this a typo, or is this customary in French? The other strings in the same translation file by you — Common.Hz and Settings.Drivers.Audio.DynamicRate.tooltip — both use "Hz" with lowercase "z".

This is a typo mistake, modified to "Hz" 😣

Ok.

  • Settings.Audio.Balance.tooltip: Dot is missing after the first sentence.
  • Settings.Input.WhenFocusIsLost.PauseEmulation: "Pause emulation" => "Mettre en pause l’émulation". The translation looks totally fine, it is even marked as a "Verified" translation of "Pause" in Google Translate. But there are shorter options. Yandex Translate translates as "Pause de l’émulation", but looks like "Pause" is a noun, not a verb. Google Translate translates "Pause emulation" as "Suspendre l’émulation". The "Microsoft" dictionary in Multitran has "suspendre" in the correct meaning too: "To stop the operation of a program or execution of a command temporarily". So it’s perfectly OK to keep your current translation as is, just would like to know what you think about "Suspendre l’émulation" as a shorter option that matches the translation sort-of-recommended by Microsoft via the corresponding Multitran dictionary.

It is ok for me to use "Suspendre", it have the same meaning and is shorter 👍

Let’s use "Suspendre l’émulation" then.

  • Tools.RunMode.PauseEmulation: Translated inconsistently with Settings.Input.WhenFocusIsLost.PauseEmulation.
  • Settings.Input.MouseXAxis, Settings.Input.MouseYAxis: "Mouse X-axis" => "Souris axe-X"; "Mouse Y-axis" => "Souris axe-Y": Probably fine as is, but not sure because Yandex Translate machine translation translates "Souris axe" back to English as "Axis mouse" that has totally different meaning compared with the original phrases. At the same time, both Yandex Translate and Google Translate consistently translate "Axis of mouse" (equivalent to "Mouse axis") as "Axe de la souris" (Yandex Translate — with "L’" before "axe") that consistently translates back to "Axis of mouse". So it may make sense to translate as "Axe X/Y de la souris" or so. What do you think?

"Souris axe-X/Y" and "Axe-X/Y de la souris" are both correct. However, after reflection, Axe-X de la souris" is more elegant.

Ok, let’s use "Axe-X de la souris".

  • Settings.Hotkeys.Rewind.enableFirst: Apparently translated as if the original English string did not contain the "support" word it actually contains. Is this intentional? Is it possible to take that word into account in the translation?

This was forgotten in the translation. However, i prefer to use the word "option" --> "Veuillez d’abord activer l'option de rembobinage dans le menu « Paramètres » → « Émulateur »" instead of "support".

Sounds reasonable. Let’s use "l'option de". I’ll consider changing the original English string accordingly.

  • Settings.Paths.Screenshots: "Screenshots" is translated as abstract "Captures", but Google Translate translates as "Captures d’écran" (with "d’écran" added) and it’s marked as verified. Also, the string Tools.TakeScreenshot in the same translation file by you, already contains an explicit translation of the "screen" word: "d’écran" ("take a screenshot" => "prendre une capture d'écran"). So it probably makes sense to translate this string as "Captures d’écran" or so, instead of just "Captures". Is this fine?

I thought it was implicit but it is ok to add "d'écran".

I suspect lone "captures" is too broad and may mean captures of many different natures, so yeah, let’s add "d'écran".

  • Settings.Emulator.FastForward.FrameSkip: "Frame skip" is translated as "Saut d’image" which machine translation translates back to English as "Image jump" which does not quite match the meaning of the original English string. It may make sense to translate as if the original English string was "Number of frames to skip" (probably "nombre d’images à sauter" as in the Settings.Emulator.FastForward.FrameSkip.tooltip translation).

"Saut d'image" is correct, i think that, in french, it is enough explicit and we don't need to explicit precise that it is about "the number of". The spanich translation use the same french translation (both languages have a lot of similarities) If you really be precise, here is another suggestion : "Nombre d'images à éviter" ("à sauter" is a bit familiar in this context)

Fine to me. Machine translation translates "éviter" back to English as "avoid" instead of "skip", but that’s still fine if you believe "éviter" is understandable as "skip" in this context.

  • Settings.Emulator.FastForward.FrameSkip.tooltip: Same issue with "saut d’images" (in the second sentence) as in Settings.Emulator.FastForward.FrameSkip. Probably makes sense to translate as if the original English string contained "Skipping frames [...]" (instead of "Frame skipping [...]"). Both Yandex Translate and Google Translate consistenly translate "Skipping frames [...]" as "Sauter des images [...]". Would this change be correct?

My suggestion : " Définit le nombre d’images à éviter lors de l’avance rapide. Éviter le rendu d’images permet une vitesse d’avance rapide maximale plus élevée. " Thus, the sentence is exactly the same as in the english version.

Ok, as long as it not just translates back to English correctly, but also correct in French. :-)

  • Settings.Enhancements.RunAhead: "Run-Ahead" => "Execution-A venir". We already discussed translation of this string. This time the issue is about missing diacritic marks, the correct string should probably be with "Exécution" instead of "Execution" and "À" instead of "A". And "À" should probably be in lowercase: "à", because we decided not to use each-word capitalization in the whole translation. Also, there should probably be spaces around the dash, and the dash should maybe be em dash (—) instead of hyphen (-) as long as "A" belongs to "venir" and not to "Execution". Like this as a result: "Exécution — à venir". Is that correct? And separately, is using em dashes in French correct, or is the narrower en dash (–) usually used instead (feel free to use any of them that better matches what is customary in French)?

Normally, in french, we don't use the "-" in this case. There is no grammatical reason to add the '-' character. The correct translation should be "Exécution à venir (Run-Ahead)" (without any '-') Or, i can modify the translation to "Exécution anticipée (Run-Ahead)"

Let’s use "Exécution à venir (Run-Ahead)" (without '-' before "venir") .

  • Settings.Enhancements.hdMode7.Supersampling: "Supersampling" => "Superéchantillonnage". Not sure, but it may make sense to add a hyphen after "Super" in the translation, otherwise machine translation struggles to correctly translate it from/to English. Would "Super-échantillonnage" be correct?

I have better, a new translation (more accurate) : "Suréchantillonnage"

Ok.

  • Settings.Enhancements.Coprocessors.PreferHle: "Prefer high-level emulation (HLE)" => "Préférer l’émulation haut-niveau (HLE)". Machine translation is almost the same, but with "de" before "haut" and with no hyphen between "haut" and "niveau". Would "Préférer l’émulation de haut niveau (HLE)" be correct? Does "de" make a crucial difference in terms of the phrase meaning?

Ok for "Préférer l’émulation de haut niveau (HLE)"

Ok.

  • Settings.Compatibility.ppu.NoVramBlocking: "blocking" is translated as "verrouillage" which translates back to English as "lock"/"locking" instead of "blocking". It may make sense to replace "verrouillage" with "blocage" that translates back to English as "blocking" like in the original English string. Would that be correct?

My bad. Modified from "verrouillage" to "blocage".

Ok.

  • Settings.Drivers.Video.FullScreenMonitor.tooltip: The translation is probably fine as is, but if possible, I would prefer a translation matching the original English string more precisely, namely regarding this part: "monitor [which] video is sent to [when already] in full-screen mode" instead of something that might be misunderstood as "monitor used [for unknown purpose] during switching to full-screen mode". Is such a more precise translation possible?

Ok, the more precise translation could be : "Détermine vers quel moniteur le signal vidéo est envoyé en mode plein écran."

Ok.

  • Settings.Drivers.Video.ExclusiveMode.tooltip: The first sentence seems to be translated without taking the "Causes" verb into account. Could it be taken into account?

Ok, my new translation : "Provoque le mode plein écran à prendre le dessus sur tous les moniteurs."

Ok.

  • Settings.Drivers.syncModePresets.DynamicRateControl.success: The translation does not account for "refresh rate" that the original English string contains twice: "60 Hz refresh rate for NTSC games, 50 Hz refresh rate for PAL games".

Translation modified to "un taux de rafraîchissement de 60 Hz pour les jeux NTSC, un taux de rafraîchissement de 50 Hz pour les jeux PAL." But, my preference is : "Le contrôle dynamique du taux de rafraîchissement exige que votre moniteur fonctionne à : 60 Hz pour les jeux NTSC, 50 Hz pour les jeux PAL." It avoids repetition and the sentence keep the english meaning.

I’m fine with avoiding repetition, but the new translation you suggested seems to insert "refresh rate" into the "Dynamic rate control" substring, effectively turning it into "Dynamic refresh rate control" which changes the original meaning.

We could probably avoid repetition in a way more that maintains the original meaning more accurately — probably by putting a translation of "refresh rate" into the part before colon — "… to be running at:" → "… to be running at [following] refresh rates:".

Modified to :

Settings.Drivers.syncModePresets.DynamicRateControl.success = " Le contrôle dynamique du taux exige que votre moniteur fonctionne à ces taux de rafraîchissement : 60 Hz pour les jeux NTSC, 50 Hz pour les jeux PAL. Utilisez le réglage de latence audio le plus bas que vôtre système peut gérer. "

  • Tools.LoadState.SelectedStateSlot: "Selected state slot" => "Emplacement d’état sélectionné". Probably correct as is. Just in case: are you sure you understand that "Selected" in the original English phrase is a form of a verb that means an action that has just been done, as if the original English string was "State slot has been selected"?

Yes, here, there was an action : this is why i used "sélectionné" (conjugated verb) and not "sélectionner" 😉

Ok.

  • Tools.LoadState.RedoLastUndo: "Redo" is translated as "Rétablir". Probably fine as is, but machine translation translates "Rétablir" back to English as "Restore" instead of "Redo". It may make sense to replace "Rétablir" with "Refaire" that translates back to English exactly as "Redo". "Refaire" is also already used in your translation of Hotkeys.LoadRedoState. And then in Tools.LoadState.UndoLastSave, it would probably make sense to use the cognate "Défaire" word instead of "Annuler". What do you think?

Correct : "Refaire" is more accurate. (i have also added "la" --> "Refaire la dernière annulation" In the same way, i have added "la" to Tools.LoadState.UndoLastSave -->"Annuler la précédente sauvegarde" However, the translation for Tools.LoadState.UndoLastSave is correct : in LibreOffice and Notepad++, "Annuler" is used for Undo.

Ok.

  • Tools.StateManager.QuickStates.Redo: Same issue as with Tools.LoadState.RedoLastUndo: "Rétablir" should maybe be replaced with "Refaire".

Modified to "Refaire".

Ok.

  • Hotkeys.LoadRedoState: "redo" is translated as "refaire" which is inconsitent with "rétablir" in two other related strings: Tools.LoadState.RedoLastUndo, Tools.StateManager.QuickStates.Redo.

It is now consistent 😁

Ok.

  • Tools.RunMode.FrameAdvance, Hotkeys.FrameAdvance: The both strings are translated the same. But they are about different things: Tools.RunMode.FrameAdvance is about enabling the whole "Frame Advance" mode, while Hotkeys.FrameAdvance is about moving to next frame while the mode is already enabled. It probably makes sense to translate these two strings as if they were the following, with "Frame Advance" added in parens after the translation for clarity (like we did with Run-Ahead):
  • Tools.RunMode.FrameAdvance = "Frame by frame" (may probably be translated as "Image par image (Frame Advance)" or so);
  • Hotkeys.FrameAdvance = "Next frame (Frame Advance)" (possible translation according to machine translation: "Image suivante (Frame Advance)" [with "Frame Advance" untranslated] or maybe with "Frame Advance" translated: "Image suivante (frame by frame)").

Ok, i now understand. My modifications are : Tools.RunMode.FrameAdvance = "Image par image (Frame Advance)" Hotkeys.FrameAdvance = "Image suivante (Frame Advance)"

Ok.

  • Tools.Movie.Stop: The translation is identical to the original English string ("Stop"). Probably fine as is, but machine translation and the "Microsoft" dictionary in Multitran suggest "Arrêter", "Arrêt" or "Arrêtez". (To be fair, Google Translate lists "stop" as one of possible options.) What do you think?

No problem for "Arrêter", it is less "brutal" than the word "Stop" without adjective

Ok, let’s use "Arrêter" instead of "Stop" then.

  • Tools.CheatFinder.Scan: "Scan" is translated as "Scanner". Probably fine as is, but just in case: there is an alternative translation of the "Scan" word in the "Microsoft" dictionary in Multitran: "Analyser", with a definition that quite matches starting a process of searching cheats: "A systematic examination of files or other data to identify content or patterns that meet specific criteria". Wouldn’t then "Analyser" better correspond to the cheat-searching context?

"Scanner" and "Analyser" are both equivalent : no winner here. But it is ok for me for "Analyser", it makes more sens in our use case.

Ok, let’s use "Analyser" instead of "Scanner".

Modified to "Analyser"

  • Tools.CheatEditor.EnableCheats.tooltip: I’m considering replacing the original English string "Master enable for all cheat codes." with the shorter "Enable cheat codes.", so it would be nice to get its translation in advance and maybe use that translation right now in the French translation.

Ok, modified to "Activation des codes de triche."

Ok.

  • Tools.CheatEditor.EnableCheats.enabled: Looks like translated as if the original English string contained "All" while it does not contain "All", so "Tous" is probably unneeded in the translation.

Oh right, fixed to "Les codes de triche actifs sont activés" (note : i removed the 's' to "triches", this was a mistake)

Ok.

  • Game.unverifiedGameWarning.alwaysQuestion.title: "Disable warning?" is translated as "Désactiver les avertissements?" which translates back to English as "Disable warnings?" that does not match the original meaning: disable not all warnings, but a specific one. It should be translated as if it was "Disable the warning?" (with "the") that translates by machine translation to "Désactiver l’avertissement?" that also matches the translation you used in the related Game.unverifiedGameWarning.alwaysQuestion string displayed in the same window. Would "Désactiver l’avertissement?" be correct?

Ok, i now understand the meaning of the sentence. Fixed to "Désactiver l'avertissement ?"

Ok.

  • Program.CapturedScreenshot: "Captured screenshot" is translated as "Capture d’écran effetuée" that translates back to English as "Effected screenshot". Machine translation suspects that there is a typo and suggests "effectuée" (with "c" added between "effe" and "tuée"), and with that change, the phrase translates back to English fine: "Screenshot taken". To be fair, "Screenshot taken" is not quite correct grammatically in English, the correct one should probably be "Screenshot has been taken"; not sure whether that "has been" should/could be reflected in French translation, your comment would be appreciated.

A typographical error. No need to translate "has been", here, the user understand that an action has been done. (by using the conjugated verb "effectuée")

Ok, so if I understand correctly, it should be "Capture d’écran effectuée" with just "c" added between "effe" and "tuée".

Exact :+1:

  • About.SameBoy.description, About.Bsnes.description: "emulator" is translated as "Emulateur" that lacks diacritic mark that machine translation has: "Émulateur". Also, machine translation translates with "de" between "émulateur" and the subject of emulation: e.g. "emulator of console" → "émulateur de console". So "Emulateur Super Game Boy" and "Emulateur Super Nintendo" should probably be changed to "Émulateur de Super Game Boy" and "Émulateur de Super Nintendo" correspondingly. Would that be correct?

Added the missing diactric 'É'. For the missing "de", both are correct : with and without. But in order to be more elegant, I add it ☺️

Ok.

A new SameBoy version was released :grin:

  • Browser.Create.EnterName: "Enter a name" is translated as "Saisir un nom". Probably fine as is, but machine translation translates as "Entrez un nom" (with "Entrez" instead of "Saisir"), and Google Translate displays the "Verified" mark. The "Microsoft" dictionary in Multitran has "entrer" as a translation with a suitable definition: "To enter information by means of the keyboard or other input method". What do you think? Wouldn’t "Entrez un nom" or "Entrer un nom" more unambiguous and therefore preferred?

"Saisir" is more eleguant thant "Entrer". My suggestion is to keep this translation. Windows 10 use this word

  • Browser.CreateFolder.EnterNewFolderName: "Enter a new-folder name" is translated as "Saisir un nom pour le nouveau-dossier". Machine translation suggests a different and slightly shorter translation, with "Entrez" intead of "Saisir" again: "Entrez un nouveau nom de dossier". Your comment would be appreciated.

Same comment as above

Ok, let’s keep "Saisir".

  • StatusIcon.verifiedRom.tooltip, StatusIcon.unverifiedRom.tooltip: The translation of "PCB" is identical to original English "PCB". But given that it is an abbreviation for "printed circuit board", shouldn’t it be translated correspondingly (like "CDCI" or "CCI" for "carte de circuit imprimé" or CI for "circuit imprimé"), or is it customary to use the English "PCB" abbreviation as is, without translating it?

In the electronic world, the PCB term is used. (here is an example : https://www.altium.com/fr/solution/what-is-a-pcb ) There is an official abbreviation ("CI") but i think that it is less understandable (except for those who works in electronic) So i can keep PCB, or translate to "L'émulation de la carte du circuit imprimé" or translate to "L'émulation de l'IC" I have a preference for the second translation.

I like your suggested "L'émulation de la carte du circuit imprimé". Maybe " (PCB)" could be appended to it (at your discretion) if this would add some extra clarity.

Modified to "L'émulation de la carte du circuit imprimé (PCB)" (with "(PCB)" for clarity)

  • ResetDrivers.message: The --resetdrivers command-line option is translated as Resetdrivers though it should be untouched, because command-line options are the same for all languages and are not a subject for translation.

fixed.

Ok.

  • Rewind.HistoryExhausted: "Rewind history exhausted" is translated as "Historique du rembobinage saturé". That translates back to English by machine translation as "History of saturated rewind" which has quite different meaning compared with the original English string. There is probably a more unambiguous translation, or maybe the current translation is just erroneous. Yandex Translate and Google Translate suggest "épuisé" or "épuisée" instead of "saturé". As a totally non-French-speaker, I, through trial and error, constructed the phrase "L'rembobinage histoire épuisée" that both (Yandex/Google) machine-translation services adequately translate to English as "The rewind story exhausted" or "Rewinding story exhausted" correspondingly — maybe this somewhat helps you to find a more optimal translation.

I think my translation keep the meaning of the original english sentence. Here, the user understand "ok, there is not enough space in the history stack to save more rewind history" So i think that "saturé" is more accurate than "épuisé" wich can also means "tired".

Ok, let’s keep the translation as is, with "saturé".

  • Movies.formatNotSupported: "Movie format is not supported" is translated as "Le format du film n’est pas pris en charge". Machine translation provides the same translation, but with "de" instead of "du". Are you sure "du" is correct (and therefore machine translation is wrong, that is quite possible)?

"du" is correct, it is more accurate than "de" wich can be more ambigous. ("format" can also be used when talking about the format ... of the screen --> 16/6, 4/3)

Ok.

  • Hotkeys.LoadUndoState: "Load Undo State" is translated as "Charger annulation d’état" that translates by machine translation back to English as "Load status/state cancellation" that has a totally different meaning than the original English string. The reason is probably that there is "d’" before "état" which is inconsistent with Hotkeys.LoadRedoState where there is no "d’": "Load Redo State" → "Charger refaire état". This "d’" does indeed affect translation: without "d’", translating back to English results in a phrase more close to the original English phrase: "Charger annulation état" without "d’" translates as "Load cancellation status" instead of "Load state cancellation" when translating "Charger annulation d’état". So maybe "Charger annulation état" is finally the correct translation. What do you think?

It is a little complex to explain but here, my translation of "Load Undo State" is correct : i have to add "d'" in this context. Without it, it is a little strange, see it as a passive adjectif : it is related to "state".

Ok.

"Load Redo State" → "Charger refaire état" : again, my translation is correct. With "annuler", i have "annulation" so i can add the "d'" But with "Refaire" there is no equivalent : "refairation" is not a french word 😋 The closest word i see is "Reproduction" so another translation could be "Charger reproduction d'état" and then, i can add the magic "d'" 😁

No need for magic. :-) Let’s keep as is then.

  • The "frame" English word is translated inconsistenly in different strings: in some cases it’s "trame", while in other cases it’s "image". Is that fine and intentional? Is it possible / does it make sense to stick to one of them thoughout the whole translation?

"trame" is correct but i agree, "image" is is easier to understand. Modified all "trame(s)" terms to "image(s)"

Ok.

  • A source in internet says: "Remember that du, de la, de l’ and des can NEVER be missed out in French, even if there is no word in English.". But some translated strings (can’t recall specific ones here, but you probably know what they are) lack those du, de la, etc. Is that fine and intentional?

It depends on the context and if we want to be in action mode ( (the app) "do this" and "do that") or in full sentence writing mode ( "the app do this").

Ok, thanks.

Waiting for the corrections we decided are needed, to be applied by you via an extra commit, and I would like to finally accept your translation and merge the pull request. :-)

Committed !

Marat-Tanalin commented 3 years ago

Committed !

For some reason, the latest commit I see is still from Feb 1, 2021 (27 days ago). It’s certainly not a result of browser-level caching because the same thing takes place in private windows.

KarLKoX-FR commented 3 years ago

I closed/launched again Github Desktop : you should now see my commits :v:

Marat-Tanalin commented 3 years ago

Yeah, the commits are now visible. ✔️ A couple of last-minute corrections:

  1. We decided to use the "option" word instead of original "support" in Settings.Hotkeys.Rewind.enableFirst, but now I think the "feature" (or alternatively, "functionality") word would be even more suitable because it’s more focused on the goal (enable the feature) instead of the specific way to achieve that goal (use a specific menu item for enabling the feature). \ I suspect that "feature" could be translated as "fonctionnalité", and if so, the resulting translated string would probably be: "Veuillez d’abord activer l’fonctionnalité de rembobinage dans le menu « Paramètres » → « Émulateur »" — with just "l'option" replaced with "l’fonctionnalité" (feel free to suggest a better translation for "feature"/"functionality").

  2. Some strings have single code quotes (') instead of proper apostrophes (’) again:

    • Menu.Settings.Size.ShrinkWindowToSize;
    • Menu.Settings.Output.scalingInfo;
    • Menu.Settings.ShowStatusBar;
    • Settings.Input.TurboRate.tooltip;
    • Settings.Hotkeys.Rewind.enableFirst;
    • Settings.Paths.Screenshots;
    • Settings.Emulator.FastForward.FrameSkip;
    • Game.unverifiedGameWarning.alwaysQuestion.title;
    • Browser.Delete.confirm.item;
    • StatusIcon.verifiedRom.tooltip.
KarLKoX-FR commented 3 years ago

Yeah, the commits are now visible. ✔️ A couple of last-minute corrections:

  1. We decided to use the "option" word instead of original "support" in Settings.Hotkeys.Rewind.enableFirst, but now I think the "feature" (or alternatively, "functionality") word would be even more suitable because it’s more focused on the goal (enable the feature) instead of the specific way to achieve that goal (use a specific menu item for enabling the feature).

    I suspect that "feature" could be translated as "fonctionnalité", and if so, the resulting translated string would probably be: "Veuillez d’abord activer l’fonctionnalité de rembobinage dans le menu « Paramètres » → « Émulateur »" — with just "l'option" replaced with "l’fonctionnalité" (feel free to suggest a better translation for "feature"/"functionality").

  2. Some strings have single code quotes (') instead of proper apostrophes (’) again:

"fonctionnalité" can also be used, i have no problem to use this word. I replaced to "la fonctionnalité" ("la" is the good adjective)

  • Menu.Settings.Size.ShrinkWindowToSize;
  • Menu.Settings.Output.scalingInfo;
  • Menu.Settings.ShowStatusBar;
  • Settings.Input.TurboRate.tooltip;
  • Settings.Hotkeys.Rewind.enableFirst;
  • Settings.Paths.Screenshots;
  • Settings.Emulator.FastForward.FrameSkip;
  • Game.unverifiedGameWarning.alwaysQuestion.title;
  • Browser.Delete.confirm.item;
  • StatusIcon.verifiedRom.tooltip.

Fixed.

And commited (according to GitDesktop)

Marat-Tanalin commented 3 years ago

Merged with some cosmetic edits. @KarLKoX-FR, thank you for your contribution, attention, clarifications, and patience. 😉 👍

Marat-Tanalin commented 3 years ago

And i use it in my own (pc engine) emulator.

Interesting. Where are the emulator and probably its source code available?

The code is, i think, the ugliest code you can find in the earth !! :sweat_smile: In fact, I would say that it is rather the case for the main application The core part doesn't sting too much :flushed: I can send you this part if you want (I'm still going to clean up the code a little bit)

I think the world would benefit from making source code of your whole working emulator available to all, not just UI and not just to me. 😉 The feature set is quite impressive (including integer scaling of course 😎). Don’t worry too much about code quality, you can always clean it up progressively when you have time.

Marat-Tanalin commented 3 years ago

The French translation is included in bsnes-mt 1.3.3r3 (2021-03-08).