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.
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +35 -14
- package/dist/web-server.js.map +1 -1
- package/package.json +1 -1
- package/public/app.js +32 -13
- package/public/i18n.js +247 -0
- package/public/index.html +63 -10
- package/public/locales/README.md +86 -0
- package/public/locales/en.json +60 -0
- package/public/locales/zh-CN.json +60 -0
package/dist/web-server.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/web-server.js
CHANGED
|
@@ -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
|
|
105
|
-
if (containerId
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
-
|
|
117
|
-
//
|
|
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
|
-
//
|
|
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,
|
package/dist/web-server.js.map
CHANGED
|
@@ -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
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(
|
|
602
|
-
term.writeln(
|
|
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(
|
|
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
|
|
961
|
-
<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
|
+
}
|