OSDN Git Service

Merge.cpp: Show translated HTML help if exists
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 23 Dec 2018 04:07:06 +0000 (13:07 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 23 Dec 2018 04:07:06 +0000 (13:07 +0900)
Src/Common/LanguageSelect.h
Src/Constants.h
Src/Merge.cpp

index 9a9995e..dfa3a3f 100644 (file)
@@ -24,6 +24,7 @@ class CLanguageSelect
 public:
        CLanguageSelect();   // standard constructor
        WORD GetLangId() const { return m_wCurLanguage; }
+       String GetFileName(LANGID) const;
        void InitializeLanguage(WORD langID);
 
        bool TranslateString(unsigned uid, std::string &) const;
@@ -48,6 +49,5 @@ private:
        unsigned m_codepage;
 // Implementation methods
 private:
-       String GetFileName(LANGID) const;
        bool LoadLanguageFile(LANGID, bool bShowError = false);
 };
index 267972a..7687353 100644 (file)
@@ -22,7 +22,7 @@ const TCHAR TranslationsUrl[] = _T("http://winmerge.org/translations/");
 const TCHAR LicenceUrl[] = _T("http://www.gnu.org/licenses/gpl-2.0.html");
 
 /** @brief Relative (to WinMerge executable ) path to local help file. */
-const TCHAR DocsPath[] = _T("Docs/WinMerge.chm");
+const TCHAR DocsPath[] = _T("Docs/WinMerge%s.chm");
 
 /** @brief Contributors list. */
 const TCHAR ContributorsPath[] = _T("contributors.txt");
index c36778a..559f48c 100644 (file)
@@ -809,9 +809,12 @@ void CMergeApp::OpenFileOrUrl(LPCTSTR szFile, LPCTSTR szUrl)
  */
 void CMergeApp::ShowHelp(LPCTSTR helpLocation /*= nullptr*/)
 {
-       String sPath = env::GetProgPath();
+       String name, ext;
        LANGID LangId = GetLangId();
-       sPath = paths::ConcatPath(sPath, DocsPath);
+       paths::SplitFilename(m_pLangDlg->GetFileName(LangId), nullptr, &name, &ext);
+       String sPath = paths::ConcatPath(env::GetProgPath(), strutils::format(DocsPath, name.c_str()));
+       if (paths::DoesPathExist(sPath) != paths::IS_EXISTING_FILE)
+               sPath = paths::ConcatPath(env::GetProgPath(), strutils::format(DocsPath, _T("")));
        if (helpLocation == nullptr)
        {
                if (paths::DoesPathExist(sPath) == paths::IS_EXISTING_FILE)