i18n: ear, epj2make, (self)extract
authorJerome St-Louis <jerome@ecere.com>
Sun, 19 Feb 2012 18:33:31 +0000 (03:33 +0900)
committerJerome St-Louis <jerome@ecere.com>
Sun, 19 Feb 2012 18:33:31 +0000 (03:33 +0900)
14 files changed:
ear/cmd/Makefile
ear/cmd/ear.ec
ear/cmd/ear.epj
ear/cmd/locale/zh_CN/LC_MESSAGES/ear.mo
ear/cmd/locale/zh_CN/LC_MESSAGES/ear.po
ear/extract/Makefile
ear/extract/extract.ec
ear/extract/extract.epj
epj2make/Makefile
epj2make/epj2make.ec
epj2make/epj2make.epj
epj2make/locale/zh_CN/LC_MESSAGES/epj2make.mo
epj2make/locale/zh_CN/LC_MESSAGES/epj2make.po
ide/src/project/ProjectView.ec

index 4579e8b..32f111f 100644 (file)
@@ -93,6 +93,7 @@ $(TARGET): $(SOURCES) $(RESOURCES) $(SYMBOLS) $(OBJECTS) | objdir
        $(CC) $(OFLAGS) $(OBJECTS) $(LIBS) -o $(TARGET) $(INSTALLNAME)
        $(STRIP) $(STRIPOPT) $(TARGET)
        $(EAR) awq $(TARGET) ../extract/obj/release.$(PLATFORM)/extract$(E) ""
+       $(EAR) awq $(TARGET) locale/zh_CN/LC_MESSAGES/ear.mo "locale/zh_CN/LC_MESSAGES"
        $(call cpq,$(TARGET),../../obj/$(PLATFORM)/bin)
 
 # SYMBOL RULES
index e39f85c..af0fe72 100644 (file)
@@ -14,27 +14,27 @@ static void ShowSyntax()
 {
    Log("ECERE Archiver v0.1\n");
    Log("Copyright (c) 2003 Jerome Jacovella-St-Louis\n\n");
-   Log("General Syntax:\n");
-   Log("   eAR <command> <archive> <parameters>\n");
-   Log("Extraction Commands:\n");
-   Log("   v  (View)         <archive> [files...]\n");
-   Log("   x  (Extract All)  <archive> [where]\n");
-   Log("   e  (Extract)      <archive> <files...>\n");
-   Log("Modification Commands:\n");
-   Log("   a  (Add)          <archive> <files...>\n");
-   Log("   r  (Refresh)      <archive> <files...>\n");
-   Log("   u  (Update)       <archive> <files...>\n");
-   Log("   m  (Move)         <archive> <files...> <to>\n");
-   Log("   n  (Rename)       <archive> <file> <new name>\n");
-   Log("   d  (Delete)       <archive> <files...>\n");
-   Log("   c  (Clear)        <archive>\n");
-   Log("   s  (Self Extract) <archive> <self-extractable> (With a: overwrite)\n");
-   Log("Options:\n");
-   Log("(aru)    f  Treat <files> as folders to pack at the root of the archive\n");
-   Log("(aru)    0  No Compression\n");
-   Log("(aru)    1 ... 9  (Fastest Compression ... Best Compression (default = 9))\n");
-   Log("(earu)   w  Specify an output directory after <files>\n");
-   Log("(xearu)  q  Quiet mode\n");
+   Log($"General Syntax:\n");
+   Log($"   eAR <command> <archive> <parameters>\n");
+   Log($"Extraction Commands:\n");
+   Log($"   v  (View)         <archive> [files...]\n");
+   Log($"   x  (Extract All)  <archive> [where]\n");
+   Log($"   e  (Extract)      <archive> <files...>\n");
+   Log($"Modification Commands:\n");
+   Log($"   a  (Add)          <archive> <files...>\n");
+   Log($"   r  (Refresh)      <archive> <files...>\n");
+   Log($"   u  (Update)       <archive> <files...>\n");
+   Log($"   m  (Move)         <archive> <files...> <to>\n");
+   Log($"   n  (Rename)       <archive> <file> <new name>\n");
+   Log($"   d  (Delete)       <archive> <files...>\n");
+   Log($"   c  (Clear)        <archive>\n");
+   Log($"   s  (Self Extract) <archive> <self-extractable> (With a: overwrite)\n");
+   Log($"Options:\n");
+   Log($"(aru)    f  Treat <files> as folders to pack at the root of the archive\n");
+   Log($"(aru)    0  No Compression\n");
+   Log($"(aru)    1 ... 9  (Fastest Compression ... Best Compression (default = 9))\n");
+   Log($"(earu)   w  Specify an output directory after <files>\n");
+   Log($"(xearu)  q  Quiet mode\n");
 }
 
 #define ARCHIVE_ACTION_VIEW      1
@@ -80,7 +80,7 @@ static void ViewArchive(char * path)
 
       ((DateTime)listing.stats.modified).local.OnGetString(timeString, null, null);
 
-      strcat(string, "\n   Modified: ");
+      strcat(string, $"\n   Modified: ");
       strcat(string, timeString);
       strcat(string, "\n");
       
@@ -157,7 +157,7 @@ static void ExtractFileFromArchive(char * path, char * outputFile)
             static byte buffer[BUFFERSIZE];
             FileGetSize(path, &dataSize);
             if(!quiet)
-               Logf("Extracting %s...\n", outputFile);
+               Logf($"Extracting %s...\n", outputFile);
             for(c = 0; c<dataSize; c += BUFFERSIZE)
             {
                uint size = (dataSize > c + BUFFERSIZE) ? BUFFERSIZE : (dataSize - c);
@@ -213,7 +213,7 @@ static bool AddToArchive(Archive archive, ArchiveDir parentDir, char * name, cha
       int ratio;
       uint newPosition;
       if(!quiet)
-         Logf("Adding %s...", name);
+         Logf($"Adding %s...", name);
       if(parentDir.Add(name, path, addMode, compression, &ratio, &newPosition))
       {
          if(newPosition)
@@ -224,11 +224,11 @@ static bool AddToArchive(Archive archive, ArchiveDir parentDir, char * name, cha
                Log("\n");
          }
          else
-            Logf("Skipped%s%s.\n", quiet ? " " : "", quiet ? name : "");
+            Logf($"Skipped%s%s.\n", quiet ? " " : "", quiet ? name : "");
       }
       else
       {
-         Logf("Out of disk space.\nError: Ran out of disk space while archiving%s%s.\n", quiet ? " " : "", quiet ? name : "");
+         Logf($"Out of disk space.\nError: Ran out of disk space while archiving%s%s.\n", quiet ? " " : "", quiet ? name : "");
          ((GuiApplication)__thisModule).exitCode = 1;
          result = false;
       }
@@ -304,7 +304,7 @@ static void MoveFileInArchive(Archive* archive, char * sourcePath, char * output
                   if(!source[0])
                   {
                      ArchiveDir dir;
-                     Logf("Moving files in root to %s.\n", outputDirectory[0] ? outputDirectory : "root");
+                     Logf($"Moving files in root to %s.\n", outputDirectory[0] ? outputDirectory : "root");
                      dir = archive->OpenDirectory(outputDirectory, null, 0);
                      if(dir)
                      {
@@ -316,7 +316,7 @@ static void MoveFileInArchive(Archive* archive, char * sourcePath, char * output
                      }
                   }
                   else if(!rootMoving)
-                     Logf("Merging directory %s in %s with %s in %s.\n", 
+                     Logf($"Merging directory %s in %s with %s in %s.\n", 
                         sourceFileName, 
                         sourceDirectory[0] ? sourceDirectory : "root",
                         sourceFileName,
@@ -339,17 +339,17 @@ static void MoveFileInArchive(Archive* archive, char * sourcePath, char * output
                   }
                }
                else if(outputExists)
-                  Logf("A file with the same name already exists (%s).\n", existingFile);
+                  Logf($"A file with the same name already exists (%s).\n", existingFile);
                else
                   // Perform operation
                   doMove = true;
             }
             else
-               Logf("Can't move directory %s inside itself.\n", source);
+               Logf($"Can't move directory %s inside itself.\n", source);
          }
          // If source is a file
          else if(outputExists.isDirectory)
-            Logf("A folder with the same name already exists (%s).\n", existingFile);
+            Logf($"A folder with the same name already exists (%s).\n", existingFile);
          else
             doMove = true;
 
@@ -367,7 +367,7 @@ static void MoveFileInArchive(Archive* archive, char * sourcePath, char * output
                   if(outputExists.isFile)
                      output.Delete(sourceFileName);
 
-                  Logf("Moving file %s in directory %s to %s.\n", sourceFileName, 
+                  Logf($"Moving file %s in directory %s to %s.\n", sourceFileName, 
                      sourceDirectory[0] ? sourceDirectory : "root", 
                      outputDirectory[0] ? outputDirectory : "root");
 
@@ -381,7 +381,7 @@ static void MoveFileInArchive(Archive* archive, char * sourcePath, char * output
          }
       }
       else
-         Logf("File is already in directory \"%s\".\n",
+         Logf($"File is already in directory \"%s\".\n",
             sourceDirectory[0] ? sourceDirectory : "root");
    }
 }
@@ -526,12 +526,12 @@ class EARApp : GuiApplication
             FileSize size;
             if(!FileExists(argv[2]))
             {
-               Logf("Archive file not found: %s\n", argv[2]);
+               Logf($"Archive file not found: %s\n", argv[2]);
                action = 0;
             }
             else if(FileGetSize(argv[2], &size) && !size)
             {
-               Logf("Archive file is empty: %s\n", argv[2]);
+               Logf($"Archive file is empty: %s\n", argv[2]);
                action = 0;
             }
             else 
@@ -541,7 +541,7 @@ class EARApp : GuiApplication
                   delete archive;
                else
                {
-                  Logf("File is not a valid ECERE archive: %s\n", argv[2]);
+                  Logf($"File is not a valid ECERE archive: %s\n", argv[2]);
                   action = 0;
                }
             }
@@ -582,7 +582,7 @@ class EARApp : GuiApplication
                            Logf("%s\n", fileName + archivePathLen);
                      }
                      else
-                        Logf("File Not Found: %s\n", name);
+                        Logf($"File Not Found: %s\n", name);
                   }
                }
                break;
@@ -693,7 +693,7 @@ class EARApp : GuiApplication
                {
                   archive.Clear();
                   delete archive;
-                  Logf("Archive cleared: %s.\n", argv[2]);
+                  Logf($"Archive cleared: %s.\n", argv[2]);
                }
                break;
             }
@@ -720,7 +720,7 @@ class EARApp : GuiApplication
                         dir = archive.OpenDirectory(directory, null, 0);
                         if(dir)
                         {
-                           Logf("Deleting file %s in directory %s.\n", file,
+                           Logf($"Deleting file %s in directory %s.\n", file,
                               directory[0] ? directory : "root");
                            dir.Delete(file);
                            delete dir;
@@ -776,7 +776,7 @@ class EARApp : GuiApplication
                            char existingFilePath[MAX_LOCATION], * existingFile;
                            FileAttribs outputExists;
 
-                           Logf("Renaming %s in directory %s to %s.\n", name,
+                           Logf($"Renaming %s in directory %s to %s.\n", name,
                               directory[0] ? directory : "root", newName);
                            strcpy(existingFilePath, archivePath);
                            existingFile = existingFilePath + strlen(existingFilePath);
@@ -809,10 +809,10 @@ class EARApp : GuiApplication
                            }
                         }
                         else
-                           Logf("Drive letters and %s only valid at root.\n", DIR_SEPS);
+                           Logf($"Drive letters and %s only valid at root.\n", DIR_SEPS);
                      }
                      else
-                        Log("New name contains directory structure.\n");
+                        Log($"New name contains directory structure.\n");
                   }
                   delete archive;
                }
index 91f9383..227eca1 100644 (file)
    ],
    "ResourcesPath" : "",
    "Resources" : [
+      {
+         "Folder" : "locale",
+         "Files" : [
+            {
+               "Folder" : "zh_CN",
+               "Files" : [
+                  {
+                     "Folder" : "LC_MESSAGES",
+                     "Files" : [
+                        "ear.mo"
+                     ]
+                  }
+               ]
+            }
+         ]
+      },
       "../extract/obj/release.$(PLATFORM)/extract$(E)"
    ]
 }
\ No newline at end of file
index 5c4574d..4ee8779 100644 (file)
Binary files a/ear/cmd/locale/zh_CN/LC_MESSAGES/ear.mo and b/ear/cmd/locale/zh_CN/LC_MESSAGES/ear.mo differ
index 01917ae..aa49366 100644 (file)
@@ -7,198 +7,168 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ecere\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-08-21 13:45+0800\n"
-"PO-Revision-Date: 2012-02-19 05:10+0900\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2012-02-20 03:19+0900\n"
 "Last-Translator: Jerome St-Louis <jerome@ecere.com>\n"
 "Language-Team: ec <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Basepath: ..\\..\\..\n"
+"X-Poedit-Basepath: ..\\..\\..\\\n"
 
-#: .\sdk\ear\cmd\ear.ec:11
-#: .\sdk\ear\extract\extract.ec:2
-#: .\sdk\ear\extract\extract.ec:4
-msgid "ecere"
-msgstr ""
-
-#: .\sdk\ear\cmd\ear.ec:15
-msgid "ECERE Archiver v0.1\n"
-msgstr "ECERE存档v0.1\n"
-
-#: .\sdk\ear\cmd\ear.ec:16
-msgid ""
-"Copyright (c) 2003 Jerome Jacovella-St-Louis\n"
-"\n"
-msgstr ""
-"版权(c)2003 Jerome Jacovella-St-Louis\n"
-"\n"
-
-#: .\sdk\ear\cmd\ear.ec:17
-msgid "General Syntax:\n"
-msgstr "一般语法:\n"
-
-#: .\sdk\ear\cmd\ear.ec:18
-msgid "   eAR <command> <archive> <parameters>\n"
-msgstr "   eAR <命令> <存档文件> <参数>\n"
-
-#: .\sdk\ear\cmd\ear.ec:19
-msgid "Extraction Commands:\n"
-msgstr "解压缩命令:\n"
+#: .\ear.ec:24
+msgid "   a  (Add)          <archive> <files...>\n"
+msgstr "   a  (添加)          <存档文件> <文件...>\n"
 
-#: .\sdk\ear\cmd\ear.ec:20
-msgid "   v  (View)         <archive> [files...]\n"
-msgstr "   v  (查看)         <存档文件> [文件...]\n"
+#: .\ear.ec:30
+msgid "   c  (Clear)        <archive>\n"
+msgstr "   c  (清除)        <存档文件>\n"
 
-#: .\sdk\ear\cmd\ear.ec:21
-msgid "   x  (Extract All)  <archive> [where]\n"
-msgstr "   x  (全部解压缩l)  <存档文件> [条件]\n"
+#: .\ear.ec:29
+msgid "   d  (Delete)       <archive> <files...>\n"
+msgstr "   d  (删除)       <存档文件> <文件...>\n"
 
-#: .\sdk\ear\cmd\ear.ec:22
+#: .\ear.ec:22
 msgid "   e  (Extract)      <archive> <files...>\n"
 msgstr "   e  (解压缩)      <存档文件> <files...>\n"
 
-#: .\sdk\ear\cmd\ear.ec:23
-msgid "Modification Commands:\n"
-msgstr "修改命令:\n"
-
-#: .\sdk\ear\cmd\ear.ec:24
-msgid "   a  (Add)          <archive> <files...>\n"
-msgstr "   a  (添加)          <存档文件> <文件...>\n"
-
-#: .\sdk\ear\cmd\ear.ec:25
-msgid "   r  (Refresh)      <archive> <files...>\n"
-msgstr "   r  (刷新)      <存档文件> <文件...>\n"
-
-#: .\sdk\ear\cmd\ear.ec:26
-msgid "   u  (Update)       <archive> <files...>\n"
-msgstr "   u  (更新)       <存档文件> <files...>\n"
+#: .\ear.ec:18
+msgid "   eAR <command> <archive> <parameters>\n"
+msgstr "   eAR <命令> <存档文件> <参数>\n"
 
-#: .\sdk\ear\cmd\ear.ec:27
+#: .\ear.ec:27
 msgid "   m  (Move)         <archive> <files...> <to>\n"
 msgstr "   m  (移动)         <存档文件> <文件...> <to>\n"
 
-#: .\sdk\ear\cmd\ear.ec:28
+#: .\ear.ec:28
 msgid "   n  (Rename)       <archive> <file> <new name>\n"
 msgstr "   n  (重命名)       <存档文件> <文件> <新名称>\n"
 
-#: .\sdk\ear\cmd\ear.ec:29
-msgid "   d  (Delete)       <archive> <files...>\n"
-msgstr "   d  (删除)       <存档文件> <文件...>\n"
-
-#: .\sdk\ear\cmd\ear.ec:30
-msgid "   c  (Clear)        <archive>\n"
-msgstr "   c  (清除)        <存档文件>\n"
+#: .\ear.ec:25
+msgid "   r  (Refresh)      <archive> <files...>\n"
+msgstr "   r  (刷新)      <存档文件> <文件...>\n"
 
-#: .\sdk\ear\cmd\ear.ec:31
+#: .\ear.ec:31
 msgid "   s  (Self Extract) <archive> <self-extractable> (With a: overwrite)\n"
 msgstr "   s  (自解压) <存档文件> <可自解压> (参数 a:覆盖)\n"
 
-#: .\sdk\ear\cmd\ear.ec:32
-msgid "Options:\n"
-msgstr "选项:\n"
+#: .\ear.ec:26
+msgid "   u  (Update)       <archive> <files...>\n"
+msgstr "   u  (更新)       <存档文件> <files...>\n"
 
-#: .\sdk\ear\cmd\ear.ec:33
-msgid "(aru)    f  Treat <files> as folders to pack at the root of the archive\n"
-msgstr "(aru)    f  Treat <files> as folders to pack at the root of the archive\n"
+#: .\ear.ec:20
+msgid "   v  (View)         <archive> [files...]\n"
+msgstr "   v  (查看)         <存档文件> [文件...]\n"
+
+#: .\ear.ec:21
+msgid "   x  (Extract All)  <archive> [where]\n"
+msgstr "   x  (全部解压缩l)  <存档文件> [条件]\n"
 
-#: .\sdk\ear\cmd\ear.ec:34
+#: .\ear.ec:34
 msgid "(aru)    0  No Compression\n"
 msgstr "(aru)    0  不压缩\n"
 
-#: .\sdk\ear\cmd\ear.ec:35
+#: .\ear.ec:35
 msgid "(aru)    1 ... 9  (Fastest Compression ... Best Compression (default = 9))\n"
 msgstr "(aru)    1 ... 9  (最快压缩 ... 最小压缩 (默认 = 9))\n"
 
-#: .\sdk\ear\cmd\ear.ec:36
+#: .\ear.ec:33
+msgid "(aru)    f  Treat <files> as folders to pack at the root of the archive\n"
+msgstr "(aru)    f  Treat <files> as folders to pack at the root of the archive\n"
+
+#: .\ear.ec:36
 msgid "(earu)   w  Specify an output directory after <files>\n"
 msgstr "(earu)   w  详细显示输出目录在<文件>之后\n"
 
-#: .\sdk\ear\cmd\ear.ec:37
+#: .\ear.ec:37
 msgid "(xearu)  q  Quiet mode\n"
 msgstr "(xearu)  q  安静模式\n"
 
-#: .\sdk\ear\cmd\ear.ec:60
-#: .\sdk\ear\cmd\ear.ec:74
-#: .\sdk\ear\cmd\ear.ec:143
-#: .\sdk\ear\cmd\ear.ec:628
-#: .\sdk\ear\extract\extract.ec:61
-#: .\sdk\ear\extract\extract.ec:226
-#: .\sdk\ear\extract\extract.ec:250
-msgid "/"
-msgstr ""
+#: .\ear.ec:342
+msgid "A file with the same name already exists (%s).\n"
+msgstr "同名文件已经存在(%s).\n"
 
-#: .\sdk\ear\cmd\ear.ec:60
-#: .\sdk\ear\cmd\ear.ec:74
-#: .\sdk\ear\cmd\ear.ec:143
-#: .\sdk\ear\cmd\ear.ec:628
-#: .\sdk\ear\extract\extract.ec:61
-#: .\sdk\ear\extract\extract.ec:226
-#: .\sdk\ear\extract\extract.ec:250
-msgid "\\"
-msgstr ""
+#: .\ear.ec:352
+msgid "A folder with the same name already exists (%s).\n"
+msgstr "同名文件夹已经存在(%s).\n"
 
-#: .\sdk\ear\cmd\ear.ec:64
-#: .\sdk\ear\cmd\ear.ec:85
-#: .\sdk\ear\cmd\ear.ec:224
-msgid "\n"
-msgstr ""
+#: .\ear.ec:216
+msgid "Adding %s..."
+msgstr "正在添加%s..."
 
-#: .\sdk\ear\cmd\ear.ec:83
-msgid ""
-"\n"
-"   Modified: "
-msgstr ""
-"\n"
-"   已修改: "
+#: .\ear.ec:696
+msgid "Archive cleared: %s.\n"
+msgstr "存档已清除:%s.\n"
 
-#: .\sdk\ear\cmd\ear.ec:122
-#: .\sdk\ear\cmd\ear.ec:608
-#: .\sdk\ear\extract\extract.ec:40
-#: .\sdk\ear\extract\extract.ec:174
-msgid "."
-msgstr ""
+#: .\ear.ec:534
+msgid "Archive file is empty: %s\n"
+msgstr "存档是空存档:%s\n"
 
-#: .\sdk\ear\cmd\ear.ec:128
-#: .\sdk\ear\cmd\ear.ec:614
-#: .\sdk\ear\extract\extract.ec:46
-msgid "_root"
-msgstr ""
+#: .\ear.ec:529
+msgid "Archive file not found: %s\n"
+msgstr "存档没有找到:%s\n"
 
-#: .\sdk\ear\cmd\ear.ec:134
-#: .\sdk\ear\cmd\ear.ec:620
-#: .\sdk\ear\extract\extract.ec:52
-#, c-format
-msgid "_%cdrive"
-msgstr ""
+#: .\ear.ec:348
+msgid "Can't move directory %s inside itself.\n"
+msgstr "不能移动目录%s本身.\n"
+
+#: .\ear.ec:723
+msgid "Deleting file %s in directory %s.\n"
+msgstr "正在删除%s文件,在目录%s中.\n"
+
+#: .\ear.ec:812
+msgid "Drive letters and %s only valid at root.\n"
+msgstr "Drive letters and %s only valid at root.\n"
 
-#: .\sdk\ear\cmd\ear.ec:160
-#, c-format
+#: .\ear.ec:160
 msgid "Extracting %s...\n"
 msgstr "正在解压缩%s...\n"
 
-#: .\sdk\ear\cmd\ear.ec:216
-#, c-format
-msgid "Adding %s..."
-msgstr "正在添加%s..."
+#: .\ear.ec:19
+msgid "Extraction Commands:\n"
+msgstr "解压缩命令:\n"
 
-#: .\sdk\ear\cmd\ear.ec:222
-#, c-format
-msgid "(%2d.%1d%%)"
-msgstr ""
+#: .\ear.ec:585
+msgid "File Not Found: %s\n"
+msgstr "文件不存在:%s\n"
 
-#: .\sdk\ear\cmd\ear.ec:227
-#, c-format
-msgid "Skipped%s%s.\n"
-msgstr "已跳过%s%s.\n"
+#: .\ear.ec:384
+msgid "File is already in directory \"%s\".\n"
+msgstr "文件已经在目录“%s”中存在.\n"
 
-#: .\sdk\ear\cmd\ear.ec:227
-#: .\sdk\ear\cmd\ear.ec:231
-msgid " "
-msgstr ""
+#: .\ear.ec:544
+msgid "File is not a valid ECERE archive: %s\n"
+msgstr "文件是非法ECERE存档:%s\n"
+
+#: .\ear.ec:17
+msgid "General Syntax:\n"
+msgstr "一般语法:\n"
 
-#: .\sdk\ear\cmd\ear.ec:231
-#, c-format
+#: .\ear.ec:319
+msgid "Merging directory %s in %s with %s in %s.\n"
+msgstr "合并目录从文件%s目录%s到输出%s文件%s目录.\n"
+
+#: .\ear.ec:23
+msgid "Modification Commands:\n"
+msgstr "修改命令:\n"
+
+#: .\ear.ec:370
+msgid "Moving file %s in directory %s to %s.\n"
+msgstr "Moving file %s in directory %s to %s.\n"
+
+#: .\ear.ec:307
+msgid "Moving files in root to %s.\n"
+msgstr "移动文件从根目录到%s.\n"
+
+#: .\ear.ec:815
+msgid "New name contains directory structure.\n"
+msgstr "新名称包括目录结构.\n"
+
+#: .\ear.ec:32
+msgid "Options:\n"
+msgstr "选项:\n"
+
+#: .\ear.ec:231
 msgid ""
 "Out of disk space.\n"
 "Error: Ran out of disk space while archiving%s%s.\n"
@@ -206,209 +176,88 @@ msgstr ""
 "磁盘空间不足.\n"
 "错误:磁盘空间不足,当解压缩文件%s%s时.\n"
 
-#: .\sdk\ear\cmd\ear.ec:257
-#: .\sdk\ear\cmd\ear.ec:521
-#: .\sdk\ear\extract\extract.ec:296
-#, c-format
-msgid "<%s>"
-msgstr ""
+#: .\ear.ec:779
+msgid "Renaming %s in directory %s to %s.\n"
+msgstr "正在改名从原存档名%s目录%s到新存档名%s.\n"
 
-#: .\sdk\ear\cmd\ear.ec:307
-#, c-format
-msgid "Moving files in root to %s.\n"
-msgstr "移动文件从根目录到%s.\n"
+#: .\ear.ec:227
+msgid "Skipped%s%s.\n"
+msgstr "已跳过%s%s.\n"
 
-#: .\sdk\ear\cmd\ear.ec:307
-#: .\sdk\ear\cmd\ear.ec:321
-#: .\sdk\ear\cmd\ear.ec:323
-#: .\sdk\ear\cmd\ear.ec:371
-#: .\sdk\ear\cmd\ear.ec:372
-#: .\sdk\ear\cmd\ear.ec:385
-#: .\sdk\ear\cmd\ear.ec:724
-#: .\sdk\ear\cmd\ear.ec:780
-msgid "root"
+#: .\ear.ec:83
+msgid ""
+"\n"
+"   Modified: "
 msgstr ""
+"\n"
+"   已修改: "
 
-#: .\sdk\ear\cmd\ear.ec:319
-#, c-format
-msgid "Merging directory %s in %s with %s in %s.\n"
-msgstr "合并目录从文件%s目录%s到输出%s文件%s目录.\n"
+#~ msgid "Browse..."
+#~ msgstr "浏览..."
 
-#: .\sdk\ear\cmd\ear.ec:342
-#, c-format
-msgid "A file with the same name already exists (%s).\n"
-msgstr "同名文件已经存在(%s).\n"
+#~ msgid ""
+#~ "Copyright (c) 2003 Jerome Jacovella-St-Louis\n"
+#~ "\n"
+#~ msgstr ""
+#~ "版权(c)2003 Jerome Jacovella-St-Louis\n"
+#~ "\n"
 
-#: .\sdk\ear\cmd\ear.ec:348
-#, c-format
-msgid "Can't move directory %s inside itself.\n"
-msgstr "不能移动目录%s本身.\n"
+#~ msgid "Created"
+#~ msgstr "已创建"
 
-#: .\sdk\ear\cmd\ear.ec:352
-#, c-format
-msgid "A folder with the same name already exists (%s).\n"
-msgstr "同名文件夹已经存在(%s).\n"
+#~ msgid "Done."
+#~ msgstr "完成."
 
-#: .\sdk\ear\cmd\ear.ec:370
-#, c-format
-msgid "Moving file %s in directory %s to %s.\n"
-msgstr "Moving file %s in directory %s to %s.\n"
+#~ msgid "ECERE Archive - %s"
+#~ msgstr "ECERE存档 - %s"
 
-#: .\sdk\ear\cmd\ear.ec:384
-#, c-format
-msgid "File is already in directory \"%s\".\n"
-msgstr "文件已经在目录“%s”中存在.\n"
+#~ msgid "ECERE Archiver v0.1\n"
+#~ msgstr "ECERE存档v0.1\n"
 
-#: .\sdk\ear\cmd\ear.ec:529
-#, c-format
-msgid "Archive file not found: %s\n"
-msgstr "存档没有找到:%s\n"
+#~ msgid "ECERE Self-Extractable Archive"
+#~ msgstr "ECERE自解压缩存档"
 
-#: .\sdk\ear\cmd\ear.ec:534
-#, c-format
-msgid "Archive file is empty: %s\n"
-msgstr "存档是空存档:%s\n"
+#~ msgid "Exit"
+#~ msgstr "退出"
 
-#: .\sdk\ear\cmd\ear.ec:544
-#, c-format
-msgid "File is not a valid ECERE archive: %s\n"
-msgstr "文件是非法ECERE存档:%s\n"
+#~ msgid "Extract"
+#~ msgstr "解压缩"
 
-#: .\sdk\ear\cmd\ear.ec:552
-#: .\sdk\ear\cmd\ear.ec:825
-msgid ":extract.exe"
-msgstr ""
+#~ msgid "Extract to"
+#~ msgstr "解压缩到"
 
-#: .\sdk\ear\cmd\ear.ec:554
-#: .\sdk\ear\cmd\ear.ec:827
-msgid ":extract"
-msgstr ""
+#~ msgid "Extracting %s..."
+#~ msgstr "正在解压缩 %s..."
 
-#: .\sdk\ear\cmd\ear.ec:582
-#, c-format
-msgid "%s\n"
-msgstr ""
+#~ msgid "Extracting Files..."
+#~ msgstr "正在解压缩文件..."
 
-#: .\sdk\ear\cmd\ear.ec:585
-#, c-format
-msgid "File Not Found: %s\n"
-msgstr "文件不存在:%s\n"
+#~ msgid "Extraction Completed"
+#~ msgstr "完全压缩"
 
-#: .\sdk\ear\cmd\ear.ec:696
-#, c-format
-msgid "Archive cleared: %s.\n"
-msgstr "存档已清除:%s.\n"
+#~ msgid "File"
+#~ msgstr "文件"
 
-#: .\sdk\ear\cmd\ear.ec:723
-#, c-format
-msgid "Deleting file %s in directory %s.\n"
-msgstr "正在删除%s文件,在目录%s中.\n"
+#~ msgid "FileSize"
+#~ msgstr "文件大小"
 
-#: .\sdk\ear\cmd\ear.ec:779
-#, c-format
-msgid "Renaming %s in directory %s to %s.\n"
-msgstr "正在改名从原存档名%s目录%s到新存档名%s.\n"
+#~ msgid "Hide Files"
+#~ msgstr "隐藏文件"
 
-#: .\sdk\ear\cmd\ear.ec:812
-#, c-format
-msgid "Drive letters and %s only valid at root.\n"
-msgstr "Drive letters and %s only valid at root.\n"
+#~ msgid "Modified"
+#~ msgstr "已修改"
 
-#: .\sdk\ear\cmd\ear.ec:815
-msgid "New name contains directory structure.\n"
-msgstr "新名称包括目录结构.\n"
+#~ msgid "Select extraction directory"
+#~ msgstr "选择解压目录"
 
-#: .\sdk\ear\extract\extract.ec:33
-#: .\sdk\ear\extract\extract.ec:245
-msgid "<:>ecere"
-msgstr ""
+#~ msgid "Size"
+#~ msgstr "大小"
 
-#: .\sdk\ear\extract\extract.ec:83
-#, c-format
-msgid "Extracting %s..."
-msgstr "正在解压缩 %s..."
-
-#: .\sdk\ear\extract\extract.ec:117
-#: .\sdk\ear\extract\extract.ec:195
-msgid "View Files"
-msgstr "查看文件"
-
-#: .\sdk\ear\extract\extract.ec:120
-msgid "Use paths from archive..."
-msgstr "使用存档路径..."
-
-#: .\sdk\ear\extract\extract.ec:138
-msgid "Extract to"
-msgstr "解压缩到"
-
-#: .\sdk\ear\extract\extract.ec:142
-msgid "Browse..."
-msgstr "浏览..."
-
-#: .\sdk\ear\extract\extract.ec:152
-msgid "Exit"
-msgstr "退出"
-
-#: .\sdk\ear\extract\extract.ec:155
-msgid "Extract"
-msgstr "解压缩"
-
-#: .\sdk\ear\extract\extract.ec:160
-msgid "Extracting Files..."
-msgstr "正在解压缩文件..."
-
-#: .\sdk\ear\extract\extract.ec:177
-msgid "Done."
-msgstr "完成."
-
-#: .\sdk\ear\extract\extract.ec:177
-msgid "Extraction Completed"
-msgstr "完全压缩"
-
-#: .\sdk\ear\extract\extract.ec:183
-msgid "File"
-msgstr "文件"
-
-#: .\sdk\ear\extract\extract.ec:184
-msgid "FileSize"
-msgstr "文件大小"
-
-#: .\sdk\ear\extract\extract.ec:184
-msgid "Size"
-msgstr "大小"
-
-#: .\sdk\ear\extract\extract.ec:185
-#: .\sdk\ear\extract\extract.ec:186
-msgid "TimeStamp"
-msgstr "时间戳"
-
-#: .\sdk\ear\extract\extract.ec:185
-msgid "Modified"
-msgstr "已修改"
-
-#: .\sdk\ear\extract\extract.ec:186
-msgid "Created"
-msgstr "已创建"
-
-#: .\sdk\ear\extract\extract.ec:187
-msgid "Select extraction directory"
-msgstr "选择解压目录"
-
-#: .\sdk\ear\extract\extract.ec:207
-msgid "Hide Files"
-msgstr "隐藏文件"
-
-#: .\sdk\ear\extract\extract.ec:297
-#, c-format
-msgid "ECERE Archive - %s"
-msgstr "ECERE存档 - %s"
-
-#: .\sdk\ear\extract\extract.ec:301
-#: .\sdk\ear\extract\extract.ec:302
-msgid ":"
-msgstr ""
+#~ msgid "TimeStamp"
+#~ msgstr "时间戳"
 
-#: .\sdk\ear\extract\extract.ec:303
-msgid "ECERE Self-Extractable Archive"
-msgstr "ECERE自解压缩存档"
+#~ msgid "Use paths from archive..."
+#~ msgstr "使用存档路径..."
 
+#~ msgid "View Files"
+#~ msgstr "查看文件"
index 800a80c..5ed60fb 100644 (file)
@@ -57,7 +57,8 @@ RESOURCES = \
        ../../ecere/res/vanilla/ecere/places/folderRemote.png \
        ../../ecere/res/vanilla/ecere/places/networkServer.png \
        ../../ecere/res/vanilla/ecere/places/networkWorkgroup.png \
-       ../../ecere/res/vanilla/ecere/status/folderOpen.png
+       ../../ecere/res/vanilla/ecere/status/folderOpen.png \
+       locale/zh_CN/LC_MESSAGES/extract.mo
 
 # CROSS-PLATFORM MAGIC
 
@@ -151,6 +152,7 @@ endif
        $(EAR) awq $(TARGET) ../../ecere/res/vanilla/ecere/elements/optionBoxSelected.png ../../ecere/res/vanilla/ecere/elements/optionBoxSelectedDown.png ../../ecere/res/vanilla/ecere/elements/optionBoxUp.png "ecere/elements"
        $(EAR) awq $(TARGET) ../../ecere/res/vanilla/ecere/places/driveRemote.png ../../ecere/res/vanilla/ecere/places/folder.png ../../ecere/res/vanilla/ecere/places/folderRemote.png ../../ecere/res/vanilla/ecere/places/networkServer.png ../../ecere/res/vanilla/ecere/places/networkWorkgroup.png "ecere/places"
        $(EAR) awq $(TARGET) ../../ecere/res/vanilla/ecere/status/folderOpen.png "ecere/status"
+       $(EAR) awq $(TARGET) locale/zh_CN/LC_MESSAGES/extract.mo "locale/zh_CN/LC_MESSAGES"
 
 # SYMBOL RULES
 
index 4173ce4..9bf65af 100644 (file)
@@ -80,7 +80,7 @@ void ExtractFileFromArchive(ProgressBar progressBar, char * path, char * outputF
 
             FileGetSize(path, &dataSize);
             GetLastDirectory(outputFile, fileName);
-            progressBar.statusBar.SetText("Extracting %s...", fileName);
+            progressBar.statusBar.SetText($"Extracting %s...", fileName);
             
             app.UpdateDisplay();
 
@@ -114,10 +114,10 @@ class SelfExtract : Window
    size = Size { 506, 138 };
    anchor = Anchor { vert = -0.15 };
 
-   Button view { this, text = "View Files", anchor = Anchor { right = 100, top = 70 }, size = Size { 100 }, hotKey = altV, NotifyClicked = ViewClicked };
+   Button view { this, text = $"View Files", anchor = Anchor { right = 100, top = 70 }, size = Size { 100 }, hotKey = altV, NotifyClicked = ViewClicked };
    Button usePaths
    {
-      this, isCheckbox = true, text = "Use paths from archive...", position = Point { 10,70 }, hotKey = altU, checked = true;
+      this, isCheckbox = true, text = $"Use paths from archive...", position = Point { 10,70 }, hotKey = altU, checked = true;
 
       bool NotifyClicked(Button control, int x, int y, Modifiers mods)
       {
@@ -135,11 +135,11 @@ class SelfExtract : Window
          return true;
       }
    }
-   EditBox where { this, text = "Extract to", anchor = Anchor { left = 10, top = 40, right = 100 }, size = Size { h = 22 }, hotKey = altT, disabled = true };
+   EditBox where { this, text = $"Extract to", anchor = Anchor { left = 10, top = 40, right = 100 }, size = Size { h = 22 }, hotKey = altT, disabled = true };
    Label whereLabel { this, position = Point { 10,20 }, labeledWindow = where };
    Button browse
    {
-      this, text = "Browse...", anchor = Anchor { right = 10, top = 40 }, size = Size { 80 }, hotKey = altB, disabled = true;
+      this, text = $"Browse...", anchor = Anchor { right = 10, top = 40 }, size = Size { 80 }, hotKey = altB, disabled = true;
 
       bool NotifyClicked(Button control, int x, int y, Modifiers mods)
       {
@@ -149,15 +149,15 @@ class SelfExtract : Window
          return true;
       }
    }
-   Button close { this, text = "Exit", anchor = Anchor { right = 10, top = 70 }, size = Size { 80 }, hotKey = altX, NotifyClicked = ButtonCloseDialog };
+   Button close { this, text = $"Exit", anchor = Anchor { right = 10, top = 70 }, size = Size { 80 }, hotKey = altX, NotifyClicked = ButtonCloseDialog };
    Button extract
    {
-      this, isDefault = true, text = "Extract", anchor = Anchor { right = 10, top = 10 }, size = Size { 80 }, hotKey = altE;
+      this, isDefault = true, text = $"Extract", anchor = Anchor { right = 10, top = 10 }, size = Size { 80 }, hotKey = altE;
 
       bool NotifyClicked(Button control, int x, int y, Modifiers mods)
       {
          FileSize totalSize;
-         ProgressBar progressBar { master = this, isModal = true, borderStyle = fixed, hasStatusBar = true, text = "Extracting Files...", clientSize = Size { 400, 40 } };
+         ProgressBar progressBar { master = this, isModal = true, borderStyle = fixed, hasStatusBar = true, text = $"Extracting Files...", clientSize = Size { 400, 40 } };
 
          ArchiveQuerySize(archive, &totalSize);
          progressBar.range = totalSize;
@@ -174,17 +174,17 @@ class SelfExtract : Window
             if(!output[0]) strcpy(output, ".");
             ExtractFileFromArchive(progressBar, archivePath, output);
          }
-         MessageBox { master = progressBar, text = "Done.", contents = "Extraction Completed" }.Modal();
+         MessageBox { master = progressBar, text = $"Done.", contents = $"Extraction Completed" }.Modal();
          progressBar.Destroy(0);
          return true;
       }
    };
    ListBox viewList { this, hasHeader = true, borderStyle = deep, hasHorzScroll = true, hasVertScroll = true, anchor = Anchor { left = 10, top = 112, right = 10,bottom = 10 } };
-   DataField nameField { header = "File", width = 360 };
-   DataField sizeField { dataType = "FileSize", header = "Size", width = 96 };
-   DataField mField { dataType = "TimeStamp", header = "Modified", width = 216 };
-   DataField cField {dataType = "TimeStamp", header = "Created", width = 216 };
-   FileDialog fileDialog { master = this, type = selectDir, text = "Select extraction directory" };
+   DataField nameField { header = $"File", width = 360 };
+   DataField sizeField { dataType = "FileSize", header = $"Size", width = 96 };
+   DataField mField { dataType = "TimeStamp", header = $"Modified", width = 216 };
+   DataField cField {dataType = "TimeStamp", header = $"Created", width = 216 };
+   FileDialog fileDialog { master = this, type = selectDir, text = $"Select extraction directory" };
 
    bool HideClicked(Button control, int x, int y, Modifiers mods)
    {
@@ -192,7 +192,7 @@ class SelfExtract : Window
       viewList.visible = false;
       size = Size {};
       position = position;
-      view.text = "View Files";
+      view.text = $"View Files";
       view.hotKey = altV;
       view.NotifyClicked = ViewClicked;
       return true;
@@ -204,7 +204,7 @@ class SelfExtract : Window
       position = position;
       clientSize.h = 300;
       viewList.visible = true;
-      view.text = "Hide Files";
+      view.text = $"Hide Files";
       view.hotKey = altH;
       view.NotifyClicked = HideClicked;
       return true;
@@ -294,13 +294,13 @@ class SelfExtractApp : GuiApplication
       {
          strcpy(archive, argv[1]);
          sprintf(archivePath, "<%s>", archive);
-         sprintf(title, "ECERE Archive - %s", argv[1]);
+         sprintf(title, $"ECERE Archive - %s", argv[1]);
       }
       else
       {
          strcpy(archive, ":");
          strcpy(archivePath, ":");
-         strcpy(title, "ECERE Self-Extractable Archive");
+         strcpy(title, $"ECERE Self-Extractable Archive");
       }
 
       SetLoggingMode(stdOut, null);
index 3496dad..7567b1f 100644 (file)
                ]
             }
          ]
+      },
+      {
+         "Folder" : "locale",
+         "Files" : [
+            {
+               "Folder" : "zh_CN",
+               "Files" : [
+                  {
+                     "Folder" : "LC_MESSAGES",
+                     "Files" : [
+                        "extract.mo"
+                     ]
+                  }
+               ]
+            }
+         ]
       }
    ]
 }
\ No newline at end of file
index c4abc94..6033dfd 100644 (file)
@@ -61,7 +61,9 @@ SOURCES = \
        ../extras/gui/controls/StringsBox.ec \
        epj2make.ec
 
-RESOURCES = ../include.mk
+RESOURCES = \
+       locale/zh_CN/LC_MESSAGES/epj2make.mo \
+       ../include.mk
 
 # CROSS-PLATFORM MAGIC
 
@@ -123,6 +125,7 @@ $(TARGET): $(SOURCES) $(RESOURCES) $(SYMBOLS) $(OBJECTS) | objdir
        $(CC) $(OFLAGS) $(OBJECTS) $(LIBS) -o $(TARGET) $(INSTALLNAME)
        $(STRIP) $(STRIPOPT) $(TARGET)
        $(EAR) awq $(TARGET) ../include.mk ""
+       $(EAR) awq $(TARGET) locale/zh_CN/LC_MESSAGES/epj2make.mo "locale/zh_CN/LC_MESSAGES"
        $(call cpq,$(TARGET),../obj/$(PLATFORM)/bin/)
 
 # SYMBOL RULES
index e08dec7..b48b664 100644 (file)
@@ -203,7 +203,7 @@ class epj2makeApp : GuiApplication
             else
             {
                valid = false;
-               printf("invalid option: %s\n", arg);
+               printf($"invalid option: %s\n", arg);
             }
          }
          else
@@ -224,24 +224,24 @@ class epj2makeApp : GuiApplication
       
       if(!valid)
       {
-         printf("Syntax:\n");
-         printf("   epj2make [-t <target platform>] [-c <configuration>] [toolchain] [directories] [options] [-o <output>] <input>\n");
-         printf("      toolchain:\n");
-         printf("         [-make <make tool>]\n");
-         printf("         [-cpp <c preprocessor>]\n");
-         printf("         [-cc <c compiler>]\n");
-         printf("         [-ecp <eC preprocessor>]\n");
-         printf("         [-ecc <eC compiler>]\n");
-         printf("         [-ecs <eC symbol generator>]\n");
-         printf("         [-ear <Ecere Archiver>]\n");
-         printf("      directories:\n");
-         printf("         [-i <include dir[;inc dir[...]]>]\n");
-         printf("         [-l <library dir[;lib dir[...]]>]\n");
-         printf("      options:\n");
-         printf("         [-noglobalsettings]\n");
-         printf("         [-noresources]\n");
-         printf("         [-d <intermediate objects directory>]\n");
-         printf("         [-includemk <include.mk path>]\n");
+         printf($"Syntax:\n");
+         printf($"   epj2make [-t <target platform>] [-c <configuration>] [toolchain] [directories] [options] [-o <output>] <input>\n");
+         printf($"      toolchain:\n");
+         printf($"         [-make <make tool>]\n");
+         printf($"         [-cpp <c preprocessor>]\n");
+         printf($"         [-cc <c compiler>]\n");
+         printf($"         [-ecp <eC preprocessor>]\n");
+         printf($"         [-ecc <eC compiler>]\n");
+         printf($"         [-ecs <eC symbol generator>]\n");
+         printf($"         [-ear <Ecere Archiver>]\n");
+         printf($"      directories:\n");
+         printf($"         [-i <include dir[;inc dir[...]]>]\n");
+         printf($"         [-l <library dir[;lib dir[...]]>]\n");
+         printf($"      options:\n");
+         printf($"         [-noglobalsettings]\n");
+         printf($"         [-noresources]\n");
+         printf($"         [-d <intermediate objects directory>]\n");
+         printf($"         [-includemk <include.mk path>]\n");
       }
       else
       {
@@ -309,7 +309,7 @@ class epj2makeApp : GuiApplication
                         }
                      }
                      if(!valid)
-                        printf("Error: Project configuration (%s) was not found.\n", configName);
+                        printf($"Error: Project configuration (%s) was not found.\n", configName);
                   }
                   else
                   {
@@ -325,7 +325,7 @@ class epj2makeApp : GuiApplication
                      if(!releaseConfig && project.configurations.count)
                      {
                         releaseConfig = project.configurations[0];
-                        printf("Notice: Project configuration (%s) will be used.\n", releaseConfig.name);
+                        printf($"Notice: Project configuration (%s) will be used.\n", releaseConfig.name);
                      }
 
                      if(releaseConfig)
@@ -367,11 +367,11 @@ class epj2makeApp : GuiApplication
                   delete project;
                }
                else
-                  printf("Error: Unable to open project file (%s) due to unknown error.\n", epjPath);
+                  printf($"Error: Unable to open project file (%s) due to unknown error.\n", epjPath);
             }
          }
          else
-            printf("Error: Input file (%s) does not exist.\n", epjPath);
+            printf($"Error: Input file (%s) does not exist.\n", epjPath);
       }
 
       //if(optionsCompiler) // how to fix those leaks?
index 03d4577..816b879 100644 (file)
    ],
    "ResourcesPath" : "",
    "Resources" : [
+      {
+         "Folder" : "locale",
+         "Files" : [
+            {
+               "Folder" : "zh_CN",
+               "Files" : [
+                  {
+                     "Folder" : "LC_MESSAGES",
+                     "Files" : [
+                        "epj2make.mo"
+                     ]
+                  }
+               ]
+            }
+         ]
+      },
       "../include.mk"
    ]
 }
\ No newline at end of file
index b184860..e74e72d 100644 (file)
Binary files a/epj2make/locale/zh_CN/LC_MESSAGES/epj2make.mo and b/epj2make/locale/zh_CN/LC_MESSAGES/epj2make.mo differ
index 61745e6..618c5dc 100644 (file)
@@ -7,199 +7,128 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ecere\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-08-21 13:45+0800\n"
-"PO-Revision-Date: 2012-02-19 05:10+0900\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2012-02-20 03:08+0900\n"
 "Last-Translator: Jerome St-Louis <jerome@ecere.com>\n"
 "Language-Team: ec <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Basepath: ..\\..\\..\n"
+"X-Poedit-Basepath: ..\\..\\..\\\n"
 
-#: .\sdk\epj2make\epj2make.ec:2
-#: .\sdk\epj2make\epj2make.ec:4
-msgid "ecere"
-msgstr ""
-
-#: .\sdk\epj2make\epj2make.ec:7
-msgid "Project"
-msgstr ""
-
-#: .\sdk\epj2make\epj2make.ec:10
-#: .\sdk\epj2make\epj2make.ec:19
-msgid ";"
-msgstr ""
-
-#: .\sdk\epj2make\epj2make.ec:12
-msgid ":"
-msgstr ""
-
-#: .\sdk\epj2make\epj2make.ec:85
-msgid "make"
-msgstr ""
-
-#: .\sdk\epj2make\epj2make.ec:92
-msgid "cpp"
-msgstr ""
-
-#: .\sdk\epj2make\epj2make.ec:99
-msgid "cc"
-msgstr ""
-
-#: .\sdk\epj2make\epj2make.ec:106
-msgid "ecp"
-msgstr ""
-
-#: .\sdk\epj2make\epj2make.ec:113
-msgid "ecc"
-msgstr ""
-
-#: .\sdk\epj2make\epj2make.ec:120
-msgid "ecs"
-msgstr ""
-
-#: .\sdk\epj2make\epj2make.ec:127
-msgid "ear"
-msgstr ""
-
-#: .\sdk\epj2make\epj2make.ec:134
-msgid "noglobalsettings"
-msgstr ""
-
-#: .\sdk\epj2make\epj2make.ec:138
-msgid "noresources"
-msgstr ""
-
-#: .\sdk\epj2make\epj2make.ec:142
-msgid "includemk"
-msgstr ""
-
-#: .\sdk\epj2make\epj2make.ec:206
-#, c-format
-msgid "invalid option: %s\n"
-msgstr "非法选项:%s\n"
-
-#: .\sdk\epj2make\epj2make.ec:227
-#, c-format
-msgid "Syntax:\n"
-msgstr "语法:\n"
-
-#: .\sdk\epj2make\epj2make.ec:228
-#, c-format
-msgid "   epj2make [-t <target platform>] [-c <configuration>] [toolchain] [directories] [options] [-o <output>] <input>\n"
-msgstr "   epj2make [-t <目标平台>] [-c <配置>] [工具链] [目录] [选项] [-o <输出>] <输入>\n"
-
-#: .\sdk\epj2make\epj2make.ec:229
-#, c-format
-msgid "      toolchain:\n"
-msgstr "      工具链:\n"
-
-#: .\sdk\epj2make\epj2make.ec:230
-#, c-format
-msgid "         [-make <make tool>]\n"
-msgstr "         [-make <make工具>]\n"
+#: .\epj2make.ec:232
+msgid "         [-cc <c compiler>]\n"
+msgstr "         [-cc <c编译器>]\n"
 
-#: .\sdk\epj2make\epj2make.ec:231
-#, c-format
+#: .\epj2make.ec:231
 msgid "         [-cpp <c preprocessor>]\n"
 msgstr "         [-cpp <c预处理器>]\n"
 
-#: .\sdk\epj2make\epj2make.ec:232
-#, c-format
-msgid "         [-cc <c compiler>]\n"
-msgstr "         [-cc <c编译器>]\n"
+#: .\epj2make.ec:243
+msgid "         [-d <intermediate objects directory>]\n"
+msgstr "         [-d <中间目标目录>]\n"
 
-#: .\sdk\epj2make\epj2make.ec:233
-#, c-format
-msgid "         [-ecp <eC preprocessor>]\n"
-msgstr "         [-ecp <eC预处理器r>]\n"
+#: .\epj2make.ec:236
+msgid "         [-ear <Ecere Archiver>]\n"
+msgstr "         [-ear <Ecere文档>]\n"
 
-#: .\sdk\epj2make\epj2make.ec:234
-#, c-format
+#: .\epj2make.ec:234
 msgid "         [-ecc <eC compiler>]\n"
 msgstr "         [-ecc <eC编译器>]\n"
 
-#: .\sdk\epj2make\epj2make.ec:235
-#, c-format
+#: .\epj2make.ec:233
+msgid "         [-ecp <eC preprocessor>]\n"
+msgstr "         [-ecp <eC预处理器r>]\n"
+
+#: .\epj2make.ec:235
 msgid "         [-ecs <eC symbol generator>]\n"
 msgstr "         [-ecs <eC符号生成器>]\n"
 
-#: .\sdk\epj2make\epj2make.ec:236
-#, c-format
-msgid "         [-ear <Ecere Archiver>]\n"
-msgstr "         [-ear <Ecere文档>]\n"
-
-#: .\sdk\epj2make\epj2make.ec:237
-#, c-format
-msgid "      directories:\n"
-msgstr "      目录:\n"
-
-#: .\sdk\epj2make\epj2make.ec:238
-#, c-format
+#: .\epj2make.ec:238
 msgid "         [-i <include dir[;inc dir[...]]>]\n"
 msgstr "         [-i <包含目录[;包含目录[...]]>]\n"
 
-#: .\sdk\epj2make\epj2make.ec:239
-#, c-format
+#: .\epj2make.ec:244
+msgid "         [-includemk <include.mk path>]\n"
+msgstr "         [-includemk <include.mk路径>]\n"
+
+#: .\epj2make.ec:239
 msgid "         [-l <library dir[;lib dir[...]]>]\n"
 msgstr "         [-l <库目录[;库目录[...]]>]\n"
 
-#: .\sdk\epj2make\epj2make.ec:240
-#, c-format
-msgid "      options:\n"
-msgstr "      选项:\n"
+#: .\epj2make.ec:230
+msgid "         [-make <make tool>]\n"
+msgstr "         [-make <make工具>]\n"
 
-#: .\sdk\epj2make\epj2make.ec:241
-#, c-format
+#: .\epj2make.ec:241
 msgid "         [-noglobalsettings]\n"
 msgstr "         [-noglobalsettings]\n"
 
-#: .\sdk\epj2make\epj2make.ec:242
-#, c-format
+#: .\epj2make.ec:242
 msgid "         [-noresources]\n"
 msgstr "         [-noresources]\n"
 
-#: .\sdk\epj2make\epj2make.ec:243
-#, c-format
-msgid "         [-d <intermediate objects directory>]\n"
-msgstr "         [-d <中间目标目录>]\n"
+#: .\epj2make.ec:237
+msgid "      directories:\n"
+msgstr "      目录:\n"
 
-#: .\sdk\epj2make\epj2make.ec:244
-#, c-format
-msgid "         [-includemk <include.mk path>]\n"
-msgstr "         [-includemk <include.mk路径>]\n"
+#: .\epj2make.ec:240
+msgid "      options:\n"
+msgstr "      选项:\n"
 
-#: .\sdk\epj2make\epj2make.ec:257
-#: .\sdk\epj2make\epj2make.ec:269
-msgid "Default"
-msgstr ""
+#: .\epj2make.ec:229
+msgid "      toolchain:\n"
+msgstr "      工具链:\n"
 
-#: .\sdk\epj2make\epj2make.ec:312
-#, c-format
+#: .\epj2make.ec:228
+msgid "   epj2make [-t <target platform>] [-c <configuration>] [toolchain] [directories] [options] [-o <output>] <input>\n"
+msgstr "   epj2make [-t <目标平台>] [-c <配置>] [工具链] [目录] [选项] [-o <输出>] <输入>\n"
+
+#: .\epj2make.ec:374
+msgid "Error: Input file (%s) does not exist.\n"
+msgstr "错误:输入文件(%s)不存在.\n"
+
+#: .\epj2make.ec:312
 msgid "Error: Project configuration (%s) was not found.\n"
 msgstr "错误:项目配置(%s)没有找到.\n"
 
-#: .\sdk\epj2make\epj2make.ec:319
-msgid "Release"
-msgstr ""
+#: .\epj2make.ec:370
+msgid "Error: Unable to open project file (%s) due to unknown error.\n"
+msgstr "错误:未知错误导致无法打开项目文件(%s).\n"
+
+#: .\..\ide\src\IDESettings.ec:578
+msgid "GNU Compiler Collection (GCC) / GNU Make"
+msgstr "GNU Compiler Collection (GCC) / GNU Make"
+
+#: .\..\ide\src\IDESettings.ec:581
+msgid "Microsoft Visual Studio 2005 (8.0) Compiler"
+msgstr "Microsoft Visual Studio 2005 (8.0) Compiler"
 
-#: .\sdk\epj2make\epj2make.ec:328
-#, c-format
+#: .\..\ide\src\IDESettings.ec:582
+msgid "Microsoft Visual Studio 2008 (9.0) Compiler"
+msgstr "Microsoft Visual Studio 2008 (9.0) Compiler"
+
+#: .\..\ide\src\IDESettings.ec:584
+msgid "Microsoft Visual Studio 2010 (10.0) Compiler"
+msgstr "Microsoft Visual Studio 2010 (10.0) Compiler"
+
+#: .\epj2make.ec:328
 msgid "Notice: Project configuration (%s) will be used.\n"
 msgstr "注意:项目配置(%s)将被使用.\n"
 
-#: .\sdk\epj2make\epj2make.ec:359
-#, c-format
-msgid "%s\n"
-msgstr ""
+#: .\..\ide\src\IDESettings.ec:580
+msgid "Portable C Compiler / GNU Make"
+msgstr "Portable C Compiler / GNU Make"
 
-#: .\sdk\epj2make\epj2make.ec:370
-#, c-format
-msgid "Error: Unable to open project file (%s) due to unknown error.\n"
-msgstr "错误:未知错误导致无法打开项目文件(%s).\n"
+#: .\epj2make.ec:227
+msgid "Syntax:\n"
+msgstr "语法:\n"
 
-#: .\sdk\epj2make\epj2make.ec:374
-#, c-format
-msgid "Error: Input file (%s) does not exist.\n"
-msgstr "错误:输入文件(%s)不存在.\n"
+#: .\..\ide\src\IDESettings.ec:579
+msgid "Tiny C Compiler / GNU Make"
+msgstr "Tiny C Compiler / GNU Make"
+
+#: .\epj2make.ec:206
+msgid "invalid option: %s\n"
+msgstr "非法选项:%s\n"
 
index 398eba2..c04dc7e 100644 (file)
@@ -45,17 +45,10 @@ static Array<FileFilter> resourceFilters
 { [
    { $"Image Files (*.jpg, *.jpeg, *.bmp, *.pcx, *.png,*.gif)", "jpg, jpeg, bmp, pcx, png, gif" },
    { $"3D Studio Model Files (*.3ds)", "3ds" },
+   { $"Translations (*.mo)", "mo" },
    { $"All files", null }
 ] };
 
-static Array<FileType> fileTypes
-{ [
-   { $"Based on extension", null },
-   { $"Text",               "txt" },
-   { $"Image",              "jpg" },
-   { $"3D Studio Model",    "3ds" }
-] };
-
 static Array<FileFilter> projectFilters
 { [
    { $"Project Files (*.epj)", ProjectExtension },
@@ -432,12 +425,10 @@ class ProjectView : Window
    FileDialog fileDialog
    {
       autoCreate = false, mayNotExist = true, filters = fileFilters.array, sizeFilters = fileFilters.count * sizeof(FileFilter);
-      types = fileTypes.array, sizeTypes = fileTypes.count * sizeof(FileType);
    };
    FileDialog resourceFileDialog
    {
       autoCreate = false, mayNotExist = true, filters = resourceFilters.array, sizeFilters = resourceFilters.count * sizeof(FileFilter);
-      types = fileTypes.array, sizeTypes = fileTypes.count * sizeof(FileType);
    };
 
    Menu fileMenu { menu, $"File", f };