gpt-po 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gpt-po",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "command tool for translate po files by gpt",
5
5
  "main": "lib/src/index.js",
6
6
  "bin": {
@@ -1,14 +1,13 @@
1
1
  You are a language translation expert.
2
2
  You will be translating text from one language to another.
3
- Languages shall be indetified to you via their ISO 639-1 two-letter code.
4
- The text is in the gettext format, which uses placeholders like %s, %d, etc. These placeholders must remain unchanged in the translated text.
3
+ In my prompt to you I may identify languages via ISO 639, ISO 3166 and/or IETF language tag codes. Please use your knowledge of those standards (when required) to determine the languages I am requesting my message to be translated from and to, including any specific country/locale detail.
4
+ The text is in the gettext format, which uses placeholders like %s, %d, etc. These placeholders must remain in the correct positions in the translated text.
5
5
  Untranslatable portions should retain their original formatting.
6
- For example, you may encounter placeholders such as "%s" - these must be retained in the correct position.
7
6
  Do not add a period (.) at the end of your translation unless the incoming message specifically ends in a period.
8
7
  Likewise, ensure to add a period (.) at the end of your translation if the incoming message specifically ends in a period.
9
8
  Ensure to preserve any whitespace present in the incoming message. This includes retaining any space(s) at the beginning or end of the message.
10
9
  I will provide the message wrapped in `translate` XML tags. You must respond with the translated message wrapped in `translated` XML tags.
11
- For example, let's say you were translating en (English) to es (Spanish) and I send (without quotes) "<translate>This is a message. </translate>". You would respond with (without quotes) "<translated>Este es un mensaje. </translated>".
10
+ For example, let's say you were translating en_US (United States English) to es (Spanish) and I send (without quotes) "<translate>This is a message. </translate>". You would respond with (without quotes) "<translated>Este es un mensaje. </translated>".
12
11
  Notice how the period and space were retained at the end of the translated message?
13
12
  Another example: I send (without quotes) "<translate> Hello %s</translate>". You would reply with (without quotes) "<translated> Hola %s</translated>".
14
13
  Notice in that second example the space at the beginning of the string was retained, and also the gettext placeholder was retained in its correct position?
@@ -28,14 +28,16 @@ function init(force) {
28
28
  }
29
29
  _openai = new openai_1.OpenAIApi(configuration);
30
30
  }
31
- // load systemprompt.txt
31
+ // load systemprompt.txt from homedir
32
32
  if (!_systemprompt || force) {
33
33
  const systemprompt = (0, utils_1.findConfig)("systemprompt.txt");
34
+ (0, utils_1.copyFileIfNotExists)(systemprompt, (0, path_1.join)(__dirname, "systemprompt.txt"));
34
35
  _systemprompt = fs.readFileSync(systemprompt, "utf-8");
35
36
  }
36
- // load dictionary.json
37
+ // load dictionary.json from homedir
37
38
  if (!_userdict || force) {
38
39
  const userdict = (0, utils_1.findConfig)("dictionary.json");
40
+ (0, utils_1.copyFileIfNotExists)(userdict, (0, path_1.join)(__dirname, "dictionary-template.json"));
39
41
  _userdict = { "default": JSON.parse(fs.readFileSync(userdict, "utf-8")) };
40
42
  }
41
43
  return _openai;
@@ -66,11 +68,11 @@ function translate(text, src, lang, model, comments, contextFile) {
66
68
  },
67
69
  {
68
70
  role: "user",
69
- content: `Wait for my incoming message in "${src.toLowerCase()}" (an ISO 639-1 code) and translate it into "${lang.toLowerCase()}" (also an ISO 639-1 code), carefully following your system prompt. ` + notes
71
+ content: `Wait for my incoming message in "${src}" and translate it into "${lang}", carefully following your system prompt. ` + notes
70
72
  },
71
73
  {
72
74
  role: "assistant",
73
- content: `Understood, I will translate your incoming "${src.toLowerCase()}" message into "${lang.toUpperCase()}", interpreting those as ISO 639-1 codes and carefully following my system prompt. Please go ahead and send your message for translation.`
75
+ content: `Understood, I will translate your incoming "${src}" message into "${lang}", carefully following my system prompt. Please go ahead and send your message for translation.`
74
76
  },
75
77
  // add userdict here
76
78
  ...dicts,
@@ -13,7 +13,7 @@ export declare function printProgress(progress: number, total: number, extra?: s
13
13
  export declare function gitRootDir(dir?: string): string | null;
14
14
  /**
15
15
  * find config file in the following order:
16
- * 1. current directory
16
+ * 1. current working directory of the Node.js process
17
17
  * 2. git root directory
18
18
  * 3. home directory
19
19
  * @param fileName
package/lib/src/utils.js CHANGED
@@ -90,7 +90,7 @@ function gitRootDir(dir) {
90
90
  exports.gitRootDir = gitRootDir;
91
91
  /**
92
92
  * find config file in the following order:
93
- * 1. current directory
93
+ * 1. current working directory of the Node.js process
94
94
  * 2. git root directory
95
95
  * 3. home directory
96
96
  * @param fileName
@@ -101,9 +101,10 @@ function findConfig(fileName) {
101
101
  const gitDir = gitRootDir() || currentDir;
102
102
  const homeDir = (0, os_1.homedir)();
103
103
  const filePaths = [
104
- path.join(currentDir, "src", fileName),
104
+ path.join(currentDir, ".gpt-po", fileName),
105
+ path.join(currentDir, fileName),
105
106
  path.join(gitDir, ".gpt-po", fileName),
106
- path.join(homeDir, ".config", ".gpt-po", fileName)
107
+ path.join(homeDir, ".gpt-po", fileName)
107
108
  ];
108
109
  // check if file exists and return the first one
109
110
  for (const filePath of filePaths) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gpt-po",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "command tool for translate po files by gpt",
5
5
  "main": "lib/src/index.js",
6
6
  "bin": {