claude-code-runner 0.1.1 → 0.1.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"web-server.d.ts","sourceRoot":"","sources":["../src/web-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAwBpC,qBAAa,WAAW;IACvB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM;IAgBrD,OAAO,CAAC,WAAW;IA4InB,OAAO,CAAC,mBAAmB;YAyTb,WAAW;YA2KX,yBAAyB;IAmIvC,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,kBAAkB;IAgCpB,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAyB9B,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKjD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BrB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiC/C"}
1
+ {"version":3,"file":"web-server.d.ts","sourceRoot":"","sources":["../src/web-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAwBpC,qBAAa,WAAW;IACvB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM;IAgBrD,OAAO,CAAC,WAAW;IAsKnB,OAAO,CAAC,mBAAmB;YAyTb,WAAW;YA2KX,yBAAyB;IAmIvC,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,kBAAkB;IAgCpB,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAyB9B,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKjD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BrB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiC/C"}
@@ -101,20 +101,41 @@ class WebUIServer {
101
101
  const containerId = req.query.containerId;
102
102
  let currentBranch = 'loading...';
103
103
  const workingDir = this.originalRepo || node_process_1.default.cwd();
104
- // If containerId is provided, try to get branch from shadow repo
105
- if (containerId && this.shadowRepos.has(containerId)) {
106
- const shadowRepo = this.shadowRepos.get(containerId);
107
- const shadowPath = shadowRepo.getPath();
108
- if (shadowPath) {
109
- try {
110
- const branchResult = await execAsync('git rev-parse --abbrev-ref HEAD', {
111
- cwd: shadowPath,
112
- });
113
- currentBranch = branchResult.stdout.trim();
114
- // Use original repo for PR lookup (PRs are created against the main repo)
104
+ // If containerId is provided, try to get branch directly from container first
105
+ if (containerId) {
106
+ try {
107
+ // Get branch directly from the container - this is the most accurate source
108
+ const branchResult = await execAsync(`${this.containerCmd} exec ${containerId} git -C /workspace rev-parse --abbrev-ref HEAD`);
109
+ currentBranch = branchResult.stdout.trim();
110
+ }
111
+ catch (containerError) {
112
+ // Container might not be ready, fall back to shadow repo or original repo
113
+ if (this.shadowRepos.has(containerId)) {
114
+ const shadowRepo = this.shadowRepos.get(containerId);
115
+ const shadowPath = shadowRepo.getPath();
116
+ if (shadowPath) {
117
+ try {
118
+ const branchResult = await execAsync('git rev-parse --abbrev-ref HEAD', {
119
+ cwd: shadowPath,
120
+ });
121
+ currentBranch = branchResult.stdout.trim();
122
+ }
123
+ catch (error) {
124
+ // Shadow repo might not be fully initialized yet, fall back to original repo
125
+ try {
126
+ const branchResult = await execAsync('git rev-parse --abbrev-ref HEAD', {
127
+ cwd: workingDir,
128
+ });
129
+ currentBranch = branchResult.stdout.trim();
130
+ }
131
+ catch (fallbackError) {
132
+ // Keep default "loading..."
133
+ }
134
+ }
135
+ }
115
136
  }
116
- catch (error) {
117
- // Shadow repo might not be fully initialized yet, fall back to original repo
137
+ else {
138
+ // No shadow repo, fall back to original repo
118
139
  try {
119
140
  const branchResult = await execAsync('git rev-parse --abbrev-ref HEAD', {
120
141
  cwd: workingDir,
@@ -128,7 +149,7 @@ class WebUIServer {
128
149
  }
129
150
  }
130
151
  else {
131
- // Fallback to original repo
152
+ // No container ID, use original repo
132
153
  try {
133
154
  const branchResult = await execAsync('git rev-parse --abbrev-ref HEAD', {
134
155
  cwd: workingDir,
@@ -1 +1 @@
1
- {"version":3,"file":"web-server.js","sourceRoot":"","sources":["../src/web-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-server.js","sourceRoot":"","sources":["../src/web-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-runner",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Run Claude Code as an autonomous agent in Docker & Podman containers",
5
5
  "author": "XiaoXi <admin@soraharu.com>",
6
6
  "license": "MIT",
package/public/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable no-control-regex */
2
- /* global Terminal, FitAddon, WebLinksAddon, io */
2
+ /* global Terminal, FitAddon, WebLinksAddon, io, I18n */
3
3
 
4
4
  // Terminal and Socket.IO setup
5
5
  let term;
@@ -187,13 +187,13 @@ function onIdleDetected() {
187
187
  document.body.classList.add('input-needed');
188
188
 
189
189
  // Update status bar
190
- updateStatus('connected', '⚠️ Waiting for input');
190
+ updateStatus('connected', t('status.waitingForInput', '⚠️ Waiting for input'));
191
191
 
192
192
  // Update page title
193
193
  if (!originalPageTitle) {
194
- originalPageTitle = document.title;
194
+ originalPageTitle = t('app.title', document.title);
195
195
  }
196
- document.title = `⚠️ Input needed - ${originalPageTitle}`;
196
+ document.title = `⚠️ ${t('messages.inputNeeded', 'Input needed')} - ${originalPageTitle}`;
197
197
 
198
198
  // Trigger file sync
199
199
  if (socket && containerId) {
@@ -597,14 +597,14 @@ async function fetchContainerList() {
597
597
  });
598
598
  }
599
599
  else {
600
- updateStatus('error', 'No containers found');
601
- term.writeln('\x1B[1;31mNo Claude Code Runner containers found.\x1B[0m');
602
- term.writeln('\x1B[90mPlease start a container first.\x1B[0m');
600
+ updateStatus('error', t('status.noContainersFound', 'No containers found'));
601
+ term.writeln(`\x1B[1;31m${t('messages.noContainersFoundMessage', 'No Claude Code Runner containers found.')}\x1B[0m`);
602
+ term.writeln(`\x1B[90m${t('messages.startContainerFirst', 'Please start a container first.')}\x1B[0m`);
603
603
  }
604
604
  }
605
605
  catch (error) {
606
606
  console.error('Failed to fetch containers:', error);
607
- updateStatus('error', 'Failed to fetch containers');
607
+ updateStatus('error', t('status.failedToFetchContainers', 'Failed to fetch containers'));
608
608
  }
609
609
  }
610
610
 
@@ -617,6 +617,14 @@ function updateStatus(status, text) {
617
617
  statusText.textContent = text;
618
618
  }
619
619
 
620
+ // Translate helper - returns translated text if I18n is ready, otherwise returns original
621
+ function t(key, fallback) {
622
+ if (typeof I18n !== 'undefined' && I18n.ready()) {
623
+ return I18n.t(key);
624
+ }
625
+ return fallback || key;
626
+ }
627
+
620
628
  // Control functions
621
629
  function clearTerminal() {
622
630
  term.clear();
@@ -625,7 +633,7 @@ function clearTerminal() {
625
633
  function reconnect() {
626
634
  if (socket && containerId) {
627
635
  // Don't clear terminal - preserve existing content
628
- term.writeln('\r\n\x1B[90mReconnecting...\x1B[0m');
636
+ term.writeln(`\r\n\x1B[90m${t('messages.reconnecting', 'Reconnecting...')}\x1B[0m`);
629
637
 
630
638
  // Just emit attach again without disconnecting
631
639
  // This will reattach to the existing session
@@ -645,7 +653,7 @@ function copySelection() {
645
653
  .then(() => {
646
654
  // Show temporary feedback
647
655
  const originalText = document.getElementById('status-text').textContent;
648
- updateStatus('connected', 'Copied to clipboard');
656
+ updateStatus('connected', t('status.copiedToClipboard', 'Copied to clipboard'));
649
657
  setTimeout(() => {
650
658
  updateStatus('connected', originalText);
651
659
  }, 2000);
@@ -748,7 +756,14 @@ function updateGitInfo(data) {
748
756
  // Initialize everything when DOM is ready
749
757
  document.addEventListener('DOMContentLoaded', () => {
750
758
  // Store original page title
751
- originalPageTitle = document.title;
759
+ originalPageTitle = t('app.title', document.title);
760
+
761
+ window.addEventListener('languagechange', () => {
762
+ originalPageTitle = t('app.title', document.title);
763
+ if (document.body.classList.contains('input-needed')) {
764
+ document.title = `⚠️ ${t('messages.inputNeeded', 'Need Input')} - ${originalPageTitle}`;
765
+ }
766
+ });
752
767
 
753
768
  initTerminal();
754
769
  initSocket();
@@ -957,11 +972,15 @@ function clearChangesTab() {
957
972
  // Clear changes content but keep the empty state
958
973
  container.innerHTML = `
959
974
  <div class="empty-state" id="no-changes">
960
- <h3>No changes detected</h3>
961
- <p>Claude hasn't made any changes yet. Changes will appear here automatically when Claude modifies files.</p>
975
+ <h3 data-i18n="changes.noChangesTitle">${t('changes.noChangesTitle', 'No changes detected')}</h3>
976
+ <p data-i18n="changes.noChangesDescription">${t('changes.noChangesDescription', 'Claude hasn\'t made any changes yet. Changes will appear here automatically when Claude modifies files.')}</p>
962
977
  </div>
963
978
  `;
964
979
 
980
+ if (typeof I18n !== 'undefined' && I18n.ready()) {
981
+ I18n.updateDOM();
982
+ }
983
+
965
984
  // Remove badge
966
985
  updateChangesTabBadge(0);
967
986
  }
package/public/i18n.js ADDED
@@ -0,0 +1,247 @@
1
+ /**
2
+ * Internationalization (i18n) module for Claude Code Runner
3
+ *
4
+ * To add a new language:
5
+ * 1. Create a new JSON file in /public/locales/ (e.g., "fr.json" for French)
6
+ * 2. Copy the structure from en.json and translate all values
7
+ * 3. The language will be automatically available in the language selector
8
+ */
9
+
10
+ const I18n = (function () {
11
+ const STORAGE_KEY = 'claude-code-runner-lang';
12
+ const DEFAULT_LOCALE = 'en';
13
+ const SUPPORTED_LOCALES = ['en', 'zh-CN'];
14
+
15
+ let currentLocale = DEFAULT_LOCALE;
16
+ let translations = {};
17
+ const loadedLocales = {};
18
+ let isInitialized = false;
19
+ let initPromise = null;
20
+
21
+ /**
22
+ * Get cookie value by name
23
+ */
24
+ function getCookie(name) {
25
+ const value = `; ${document.cookie}`;
26
+ const parts = value.split(`; ${name}=`);
27
+ if (parts.length === 2) {
28
+ return parts.pop().split(';').shift();
29
+ }
30
+ return null;
31
+ }
32
+
33
+ /**
34
+ * Set cookie with expiry
35
+ */
36
+ function setCookie(name, value, days = 365) {
37
+ const date = new Date();
38
+ date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
39
+ const expires = `expires=${date.toUTCString()}`;
40
+ document.cookie = `${name}=${value};${expires};path=/;SameSite=Lax`;
41
+ }
42
+
43
+ /**
44
+ * Detect user's preferred language from browser settings
45
+ */
46
+ function detectBrowserLanguage() {
47
+ const browserLangs = navigator.languages || [navigator.language || navigator.userLanguage];
48
+
49
+ for (const lang of browserLangs) {
50
+ // Check exact match first
51
+ if (SUPPORTED_LOCALES.includes(lang)) {
52
+ return lang;
53
+ }
54
+ // Check language code without region (e.g., 'zh' from 'zh-TW')
55
+ const baseLang = lang.split('-')[0];
56
+ // Map common variants
57
+ if (baseLang === 'zh') {
58
+ // For Chinese, default to Simplified Chinese
59
+ return 'zh-CN';
60
+ }
61
+ if (SUPPORTED_LOCALES.includes(baseLang)) {
62
+ return baseLang;
63
+ }
64
+ }
65
+
66
+ return DEFAULT_LOCALE;
67
+ }
68
+
69
+ /**
70
+ * Load a locale's translations
71
+ */
72
+ async function loadLocale(locale) {
73
+ if (loadedLocales[locale]) {
74
+ return loadedLocales[locale];
75
+ }
76
+
77
+ try {
78
+ const response = await fetch(`/locales/${locale}.json`);
79
+ if (!response.ok) {
80
+ throw new Error(`Failed to load locale: ${locale}`);
81
+ }
82
+ const data = await response.json();
83
+ loadedLocales[locale] = data;
84
+ return data;
85
+ }
86
+ catch (error) {
87
+ console.error(`Error loading locale ${locale}:`, error);
88
+ // Fallback to English if available
89
+ if (locale !== DEFAULT_LOCALE && loadedLocales[DEFAULT_LOCALE]) {
90
+ return loadedLocales[DEFAULT_LOCALE];
91
+ }
92
+ return {};
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Get nested value from object by dot-notation path
98
+ */
99
+ function getNestedValue(obj, path) {
100
+ return path.split('.').reduce((current, key) => {
101
+ return current && current[key] !== undefined ? current[key] : null;
102
+ }, obj);
103
+ }
104
+
105
+ /**
106
+ * Translate a key
107
+ * @param {string} key - Dot-notation key (e.g., 'header.connecting')
108
+ * @param {object} params - Optional parameters for interpolation
109
+ * @returns {string} Translated string or key if not found
110
+ */
111
+ function t(key, params = {}) {
112
+ let value = getNestedValue(translations, key);
113
+
114
+ if (value === null) {
115
+ console.warn(`Translation missing for key: ${key}`);
116
+ return key;
117
+ }
118
+
119
+ // Simple interpolation: replace {{param}} with params.param
120
+ if (typeof value === 'string' && Object.keys(params).length > 0) {
121
+ Object.keys(params).forEach((param) => {
122
+ value = value.replace(new RegExp(`{{${param}}}`, 'g'), params[param]);
123
+ });
124
+ }
125
+
126
+ return value;
127
+ }
128
+
129
+ /**
130
+ * Update all elements with data-i18n attribute
131
+ */
132
+ function updateDOM() {
133
+ // Update elements with data-i18n attribute (text content)
134
+ document.querySelectorAll('[data-i18n]').forEach((element) => {
135
+ const key = element.getAttribute('data-i18n');
136
+ const translated = t(key);
137
+ if (translated !== key) {
138
+ element.textContent = translated;
139
+ }
140
+ });
141
+
142
+ // Update elements with data-i18n-placeholder attribute
143
+ document.querySelectorAll('[data-i18n-placeholder]').forEach((element) => {
144
+ const key = element.getAttribute('data-i18n-placeholder');
145
+ const translated = t(key);
146
+ if (translated !== key) {
147
+ element.placeholder = translated;
148
+ }
149
+ });
150
+
151
+ // Update elements with data-i18n-title attribute
152
+ document.querySelectorAll('[data-i18n-title]').forEach((element) => {
153
+ const key = element.getAttribute('data-i18n-title');
154
+ const translated = t(key);
155
+ if (translated !== key) {
156
+ element.title = translated;
157
+ }
158
+ });
159
+
160
+ // Update document title
161
+ document.title = t('app.title');
162
+
163
+ // Update language selector current value
164
+ const langSelector = document.getElementById('language-selector');
165
+ if (langSelector) {
166
+ langSelector.value = currentLocale;
167
+ }
168
+ }
169
+
170
+ /**
171
+ * Set the current locale
172
+ */
173
+ async function setLocale(locale) {
174
+ if (!SUPPORTED_LOCALES.includes(locale)) {
175
+ console.warn(`Locale ${locale} is not supported, falling back to ${DEFAULT_LOCALE}`);
176
+ locale = DEFAULT_LOCALE;
177
+ }
178
+
179
+ translations = await loadLocale(locale);
180
+ currentLocale = locale;
181
+ setCookie(STORAGE_KEY, locale);
182
+ document.documentElement.lang = locale;
183
+
184
+ updateDOM();
185
+
186
+ // Dispatch event for components that need to react to language changes
187
+ window.dispatchEvent(new CustomEvent('languagechange', { detail: { locale } }));
188
+ }
189
+
190
+ /**
191
+ * Initialize i18n system
192
+ */
193
+ async function init() {
194
+ if (initPromise) {
195
+ return initPromise;
196
+ }
197
+
198
+ initPromise = (async () => {
199
+ // Determine initial locale
200
+ const savedLocale = getCookie(STORAGE_KEY);
201
+ const browserLocale = detectBrowserLanguage();
202
+ const initialLocale = savedLocale || browserLocale;
203
+
204
+ // Pre-load default locale as fallback
205
+ await loadLocale(DEFAULT_LOCALE);
206
+
207
+ // Load and set the initial locale
208
+ await setLocale(initialLocale);
209
+
210
+ isInitialized = true;
211
+ })();
212
+
213
+ return initPromise;
214
+ }
215
+
216
+ /**
217
+ * Get current locale
218
+ */
219
+ function getLocale() {
220
+ return currentLocale;
221
+ }
222
+
223
+ /**
224
+ * Get list of supported locales
225
+ */
226
+ function getSupportedLocales() {
227
+ return [...SUPPORTED_LOCALES];
228
+ }
229
+
230
+ /**
231
+ * Check if i18n is initialized
232
+ */
233
+ function ready() {
234
+ return isInitialized;
235
+ }
236
+
237
+ // Public API
238
+ return {
239
+ init,
240
+ t,
241
+ setLocale,
242
+ getLocale,
243
+ getSupportedLocales,
244
+ updateDOM,
245
+ ready,
246
+ };
247
+ })();
package/public/index.html CHANGED
@@ -458,6 +458,40 @@
458
458
  .pr-badge:hover {
459
459
  opacity: 0.8;
460
460
  }
461
+
462
+ /* Language selector styles */
463
+ .language-selector-wrapper {
464
+ display: flex;
465
+ align-items: center;
466
+ gap: 0.5rem;
467
+ margin-right: 1rem;
468
+ padding-right: 1rem;
469
+ border-right: 1px solid #3e3e3e;
470
+ }
471
+
472
+ .language-selector-wrapper svg {
473
+ color: #7d8590;
474
+ }
475
+
476
+ #language-selector {
477
+ background-color: #3c3c3c;
478
+ color: #cccccc;
479
+ border: 1px solid #4c4c4c;
480
+ padding: 0.25rem 0.5rem;
481
+ border-radius: 4px;
482
+ font-size: 0.75rem;
483
+ cursor: pointer;
484
+ outline: none;
485
+ }
486
+
487
+ #language-selector:hover {
488
+ background-color: #4c4c4c;
489
+ border-color: #5c5c5c;
490
+ }
491
+
492
+ #language-selector:focus {
493
+ border-color: #4caf50;
494
+ }
461
495
  </style>
462
496
  </head>
463
497
  <body>
@@ -485,6 +519,18 @@
485
519
  Claude Code Runner
486
520
  </h1>
487
521
  <div class="status">
522
+ <!-- Language Selector -->
523
+ <div class="language-selector-wrapper">
524
+ <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
525
+ <circle cx="12" cy="12" r="10"></circle>
526
+ <line x1="2" y1="12" x2="22" y2="12"></line>
527
+ <path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path>
528
+ </svg>
529
+ <select id="language-selector" onchange="I18n.setLocale(this.value)">
530
+ <option value="en">English</option>
531
+ <option value="zh-CN">简体中文</option>
532
+ </select>
533
+ </div>
488
534
  <span
489
535
  class="git-info"
490
536
  id="git-info"
@@ -528,7 +574,7 @@
528
574
  <polyline points="4,17 10,11 4,5"></polyline>
529
575
  <line x1="12" y1="19" x2="20" y2="19"></line>
530
576
  </svg>
531
- Terminal
577
+ <span data-i18n="tabs.terminal">Terminal</span>
532
578
  </button>
533
579
  <button class="tab" id="changes-tab" onclick="switchTab('changes')">
534
580
  <svg
@@ -548,7 +594,7 @@
548
594
  <line x1="16" y1="17" x2="8" y2="17"></line>
549
595
  <polyline points="10,9 9,9 8,9"></polyline>
550
596
  </svg>
551
- Changes
597
+ <span data-i18n="tabs.changes">Changes</span>
552
598
  </button>
553
599
  </div>
554
600
 
@@ -558,14 +604,14 @@
558
604
  <div id="terminal"></div>
559
605
  <div class="loading" id="loading">
560
606
  <div class="loading-spinner"></div>
561
- <div>Connecting to container...</div>
607
+ <div data-i18n="terminal.connectingToContainer">Connecting to container...</div>
562
608
  </div>
563
609
  </div>
564
610
 
565
611
  <div class="controls">
566
- <button onclick="clearTerminal()">Clear</button>
567
- <button onclick="reconnect()">Reconnect</button>
568
- <button onclick="copySelection()">Copy Selection</button>
612
+ <button onclick="clearTerminal()" data-i18n="terminal.clear">Clear</button>
613
+ <button onclick="reconnect()" data-i18n="terminal.reconnect">Reconnect</button>
614
+ <button onclick="copySelection()" data-i18n="terminal.copySelection">Copy Selection</button>
569
615
  <label
570
616
  style="
571
617
  margin-left: 1rem;
@@ -575,9 +621,9 @@
575
621
  "
576
622
  >
577
623
  <input type="checkbox" id="soundEnabled" checked />
578
- <span>Sound notifications</span>
624
+ <span data-i18n="terminal.soundNotifications">Sound notifications</span>
579
625
  </label>
580
- <span style="margin-left: auto; color: #888">
626
+ <span style="margin-left: auto; color: #888" data-i18n="terminal.shortcuts">
581
627
  Ctrl+C: Interrupt | Ctrl+D: Exit | Ctrl+L: Clear
582
628
  </span>
583
629
  </div>
@@ -588,8 +634,8 @@
588
634
  <div class="changes-view">
589
635
  <div class="changes-content" id="changes-container">
590
636
  <div class="empty-state" id="no-changes">
591
- <h3>No changes detected</h3>
592
- <p>
637
+ <h3 data-i18n="changes.noChangesTitle">No changes detected</h3>
638
+ <p data-i18n="changes.noChangesDescription">
593
639
  Claude hasn't made any changes yet. Changes will appear here
594
640
  automatically when Claude modifies files.
595
641
  </p>
@@ -602,6 +648,13 @@
602
648
  <script src="https://unpkg.com/xterm-addon-fit@0.8.0/lib/xterm-addon-fit.js"></script>
603
649
  <script src="https://unpkg.com/xterm-addon-web-links@0.9.0/lib/xterm-addon-web-links.js"></script>
604
650
  <script src="/socket.io/socket.io.js"></script>
651
+ <script src="/i18n.js"></script>
605
652
  <script src="/app.js"></script>
653
+ <script>
654
+ // Initialize i18n before app starts
655
+ I18n.init().then(() => {
656
+ console.log('i18n initialized with locale:', I18n.getLocale());
657
+ });
658
+ </script>
606
659
  </body>
607
660
  </html>
@@ -0,0 +1,86 @@
1
+ # Internationalization (i18n)
2
+
3
+ This folder contains the translation files for Claude Code Runner's Web UI.
4
+
5
+ ## Supported Languages
6
+
7
+ - `en.json` - English (default)
8
+ - `zh-CN.json` - Simplified Chinese (简体中文)
9
+
10
+ ## Adding a New Language
11
+
12
+ To add a new language:
13
+
14
+ 1. **Create a new JSON file** in this folder with the language code as the filename (e.g., `fr.json` for French, `ja.json` for Japanese)
15
+
16
+ 2. **Copy the structure from `en.json`** and translate all values:
17
+ ```bash
18
+ cp en.json <language-code>.json
19
+ ```
20
+
21
+ 3. **Update the `SUPPORTED_LOCALES` array** in `/public/i18n.js`:
22
+ ```javascript
23
+ const SUPPORTED_LOCALES = ['en', 'zh-CN', 'fr']; // Add your new locale
24
+ ```
25
+
26
+ 4. **Add the language option to the selector** in `/public/index.html`:
27
+ ```html
28
+ <select id="language-selector" onchange="I18n.setLocale(this.value)">
29
+ <option value="en">English</option>
30
+ <option value="zh-CN">简体中文</option>
31
+ <option value="fr">Français</option> <!-- Add your new option -->
32
+ </select>
33
+ ```
34
+
35
+ 5. **Add the language name** to each locale file under `language` key:
36
+ ```json
37
+ "language": {
38
+ "label": "Language",
39
+ "en": "English",
40
+ "zh-CN": "简体中文",
41
+ "fr": "Français"
42
+ }
43
+ ```
44
+
45
+ ## Language File Structure
46
+
47
+ ```json
48
+ {
49
+ "app": {
50
+ "title": "Page title",
51
+ "name": "App name"
52
+ },
53
+ "header": { ... },
54
+ "tabs": { ... },
55
+ "terminal": { ... },
56
+ "changes": { ... },
57
+ "status": { ... },
58
+ "messages": { ... },
59
+ "language": { ... }
60
+ }
61
+ ```
62
+
63
+ ## Using Translations in Code
64
+
65
+ ### In HTML (static text)
66
+ Use the `data-i18n` attribute:
67
+ ```html
68
+ <span data-i18n="tabs.terminal">Terminal</span>
69
+ ```
70
+
71
+ ### In JavaScript (dynamic text)
72
+ Use the `t()` helper function:
73
+ ```javascript
74
+ const text = t('status.connected', 'Connected');
75
+ ```
76
+
77
+ The second parameter is the fallback text if i18n is not ready.
78
+
79
+ ## Language Detection
80
+
81
+ The system automatically:
82
+ 1. Checks for a saved language preference in cookies
83
+ 2. Falls back to browser language preference
84
+ 3. Defaults to English if no match is found
85
+
86
+ When users manually select a language, the preference is saved in a cookie for 365 days.
@@ -0,0 +1,60 @@
1
+ {
2
+ "app": {
3
+ "title": "Claude Code Runner - Terminal",
4
+ "name": "Claude Code Runner"
5
+ },
6
+ "header": {
7
+ "loading": "loading...",
8
+ "connecting": "Connecting..."
9
+ },
10
+ "tabs": {
11
+ "terminal": "Terminal",
12
+ "changes": "Changes"
13
+ },
14
+ "terminal": {
15
+ "connectingToContainer": "Connecting to container...",
16
+ "clear": "Clear",
17
+ "reconnect": "Reconnect",
18
+ "copySelection": "Copy Selection",
19
+ "soundNotifications": "Sound notifications",
20
+ "shortcuts": "Ctrl+C: Interrupt | Ctrl+D: Exit | Ctrl+L: Clear",
21
+ "welcome": "Welcome to Claude Code Runner Terminal"
22
+ },
23
+ "changes": {
24
+ "noChangesTitle": "No changes detected",
25
+ "noChangesDescription": "Claude hasn't made any changes yet. Changes will appear here automatically when Claude modifies files."
26
+ },
27
+ "status": {
28
+ "connected": "Connected",
29
+ "connecting": "Connecting...",
30
+ "attachingToContainer": "Attaching to container...",
31
+ "connectedTo": "Connected to {{containerId}}",
32
+ "disconnected": "Disconnected",
33
+ "disconnectedFromServer": "Disconnected from server",
34
+ "containerDisconnected": "Container disconnected",
35
+ "error": "Error",
36
+ "waitingForInput": "⚠️ Waiting for input",
37
+ "copiedToClipboard": "Copied to clipboard",
38
+ "noContainersFound": "No containers found",
39
+ "failedToFetchContainers": "Failed to fetch containers",
40
+ "syncFailed": "Sync failed: {{message}}",
41
+ "commitSuccess": "✓ Changes committed successfully",
42
+ "commitFailed": "Commit failed: {{message}}",
43
+ "pushSuccess": "✓ Changes pushed to remote {{branch}}"
44
+ },
45
+ "messages": {
46
+ "reconnecting": "Reconnecting...",
47
+ "noContainersFoundMessage": "No Claude Code Runner containers found.",
48
+ "startContainerFirst": "Please start a container first.",
49
+ "connectionClosed": "Connection closed",
50
+ "connectionError": "Connection error",
51
+ "serverConnectionLost": "Server connection lost. Click \"Reconnect\" to retry.",
52
+ "containerConnectionLost": "Container connection lost. Click \"Reconnect\" to retry.",
53
+ "inputNeeded": "Input needed"
54
+ },
55
+ "language": {
56
+ "label": "Language",
57
+ "en": "English",
58
+ "zh-CN": "简体中文"
59
+ }
60
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "app": {
3
+ "title": "Claude Code Runner - 终端",
4
+ "name": "Claude Code Runner"
5
+ },
6
+ "header": {
7
+ "loading": "加载中...",
8
+ "connecting": "连接中..."
9
+ },
10
+ "tabs": {
11
+ "terminal": "终端",
12
+ "changes": "更改"
13
+ },
14
+ "terminal": {
15
+ "connectingToContainer": "正在连接到容器...",
16
+ "clear": "清屏",
17
+ "reconnect": "重新连接",
18
+ "copySelection": "复制选中",
19
+ "soundNotifications": "声音通知",
20
+ "shortcuts": "Ctrl+C: 中断 | Ctrl+D: 退出 | Ctrl+L: 清屏",
21
+ "welcome": "欢迎使用 Claude Code Runner 终端"
22
+ },
23
+ "changes": {
24
+ "noChangesTitle": "未检测到更改",
25
+ "noChangesDescription": "Claude 尚未进行任何更改。当 Claude 修改文件时,更改将自动显示在此处。"
26
+ },
27
+ "status": {
28
+ "connected": "已连接",
29
+ "connecting": "连接中...",
30
+ "attachingToContainer": "正在连接到容器...",
31
+ "connectedTo": "已连接到 {{containerId}}",
32
+ "disconnected": "已断开",
33
+ "disconnectedFromServer": "与服务器断开连接",
34
+ "containerDisconnected": "容器已断开连接",
35
+ "error": "错误",
36
+ "waitingForInput": "⚠️ 等待输入",
37
+ "copiedToClipboard": "已复制到剪贴板",
38
+ "noContainersFound": "未找到容器",
39
+ "failedToFetchContainers": "获取容器失败",
40
+ "syncFailed": "同步失败: {{message}}",
41
+ "commitSuccess": "✓ 更改已成功提交",
42
+ "commitFailed": "提交失败: {{message}}",
43
+ "pushSuccess": "✓ 更改已推送到远程分支 {{branch}}"
44
+ },
45
+ "messages": {
46
+ "reconnecting": "正在重新连接...",
47
+ "noContainersFoundMessage": "未找到 Claude Code Runner 容器。",
48
+ "startContainerFirst": "请先启动一个容器。",
49
+ "connectionClosed": "连接已关闭",
50
+ "connectionError": "连接错误",
51
+ "serverConnectionLost": "与服务器的连接已断开。点击「重新连接」重试。",
52
+ "containerConnectionLost": "与容器的连接已断开。点击「重新连接」重试。",
53
+ "inputNeeded": "需要输入"
54
+ },
55
+ "language": {
56
+ "label": "语言",
57
+ "en": "English",
58
+ "zh-CN": "简体中文"
59
+ }
60
+ }