Or you could do the other way around. More programs expect the English path name than translated ones. Honestly, translating path names is a recipe for disaster.

On Jan 17, 2012 8:25 AM, "Jerome Leclanche" <adys.wh@gmail.com> wrote:
We could translate the path and setup an English symlink automatically if possible?

J. Leclanche


On Tue, Jan 17, 2012 at 10:36 AM, Francois Gouget <fgouget@free.fr> wrote:

That is the question!


We have a bunch of shell paths to translate in shell32.rc. However,
based on my French Windows VMs and computers I believe a number of them
should not be translated:

 * As far as I can tell 'Program Files' is never translated.
 * Same thing for 'SendTo' and 'Recent'.
 * 'Application Data' appears to be translated in NT4 but not on Windows
  2000 and greater.

Generally speaking translating a path causes all sorts of trouble
with broken applications. For instance one regularly ends up with a
'Common Files' folder as well as the French 'Fichiers Communs' one, even
on a clean Windows install!

Looking at Windows 2000 and greater it seems that Microsoft first
decided to only translate the folders most visible to the user. That
would explain why 'Application Data', 'Local Settings' and their ilk are
not translated.

But the very latest fashion (e.g. Windows 7), appears to be to never
translate the actual on-disk folder name and use 'desktop.ini' files to
get a localized name in the GUI. So for instance on Windows 7 the
'Program Files' folder is called that way on disk but it appears as
'Programmes' in Windows Explorer because of the desktop.ini file (as an
anecdote 'Program Files (x86)' has no 'desktop.ini' file and thus is not
translated in Explorer. What a mess!).


So what do we want to do?

The patch below marks the paths that are not meant to be translated as
such to reduce the translators burden and avoid mistakes. Some paths mix
parts that need to be translated with other that shouldn't. Given the
CSIDL_Data structure I'm not sure that can be avoided but I'll be happy
with any patch that avoids that. In the meantime I use the message
context to give instructions to the translator.

Does this make sense? Any better solution?


diff --git a/dlls/shell32/shell32.rc b/dlls/shell32/shell32.rc
index 92d9d72..3aaa0f2 100644
--- a/dlls/shell32/shell32.rc
+++ b/dlls/shell32/shell32.rc
@@ -200,31 +200,31 @@ the folder?"
       IDS_PERSONAL                "My Documents"
       IDS_FAVORITES               "Favorites"
       IDS_STARTUP                 "Start Menu\\Programs\\StartUp"
-       IDS_RECENT                  "Recent"
-       IDS_SENDTO                  "SendTo"
+       IDS_RECENT                  "#msgctxt#do not translate#Recent"
+       IDS_SENDTO                  "#msgctxt#do not translate#SendTo"
       IDS_STARTMENU               "Start Menu"
       IDS_MYMUSIC                 "My Music"
       IDS_MYVIDEO                 "My Videos"
       IDS_DESKTOPDIRECTORY        "#msgctxt#directory#Desktop"
       IDS_NETHOOD                 "NetHood"
       IDS_TEMPLATES               "Templates"
-       IDS_APPDATA                 "Application Data"
+       IDS_APPDATA                 "#msgctxt#do not translate#Application Data"
       IDS_PRINTHOOD               "PrintHood"
-       IDS_LOCAL_APPDATA           "Local Settings\\Application Data"
-       IDS_INTERNET_CACHE          "Local Settings\\Temporary Internet Files"
-       IDS_COOKIES                 "Cookies"
-       IDS_HISTORY                 "Local Settings\\History"
-       IDS_PROGRAM_FILES           "Program Files"
-       IDS_PROGRAM_FILESX86        "Program Files (x86)"
+       IDS_LOCAL_APPDATA           "#msgctxt#do not translate#Local Settings\\Application Data"
+       IDS_INTERNET_CACHE          "#msgctxt#do not translate#Local Settings\\Temporary Internet Files"
+       IDS_COOKIES                 "#msgctxt#do not translate#Cookies"
+       IDS_HISTORY                 "#msgctxt#do not translate 'Local Settings'#Local Settings\\History"
+       IDS_PROGRAM_FILES           "#msgctxt#do not translate#Program Files"
+       IDS_PROGRAM_FILESX86        "#msgctxt#do not translate#Program Files (x86)"
       IDS_MYPICTURES              "My Pictures"
-       IDS_PROGRAM_FILES_COMMON    "Program Files\\Common Files"
-       IDS_PROGRAM_FILES_COMMONX86 "Program Files (x86)\\Common Files"
+       IDS_PROGRAM_FILES_COMMON    "#msgctxt#do not translate 'Program Files'#Program Files\\Common Files"
+       IDS_PROGRAM_FILES_COMMONX86 "#msgctxt#do not translate 'Program Files (x86)'#Program Files (x86)\\Common Files"
       IDS_COMMON_DOCUMENTS        "Documents"
       IDS_ADMINTOOLS              "Start Menu\\Programs\\Administrative Tools"
       IDS_COMMON_MUSIC            "Music"
       IDS_COMMON_PICTURES         "Pictures"
       IDS_COMMON_VIDEO            "Videos"
-       IDS_CDBURN_AREA             "Local Settings\\Application Data\\Microsoft\\CD Burning"
+       IDS_CDBURN_AREA             "#msgctxt#do not translate#Local Settings\\Application Data\\Microsoft\\CD Burning"
       IDS_CONTACTS                "Contacts"
       IDS_LINKS                   "Links"
       IDS_PHOTO_ALBUMS            "Pictures\\Slide Shows"
--
1.7.7.3