From 0be484290d8982cf9d0767ee1a054770118868d6 Mon Sep 17 00:00:00 2001
From: Terren <11605395+terreng@users.noreply.github.com>
Date: Fri, 2 Jun 2023 16:07:11 -0700
Subject: [PATCH 1/5] Add Japanese
---
README.md | 2 +-
README_ja.md | 15 ++++++
index.js | 4 ++
lang.js | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++-
4 files changed, 159 insertions(+), 2 deletions(-)
create mode 100644 README_ja.md
diff --git a/README.md b/README.md
index bb4da382..97abefe8 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Simple Web Server
-[Download](https://simplewebserver.org/download/) • [Documentation](https://simplewebserver.org/docs/options.html) • [Build from source](https://simplewebserver.org/docs/build.html) • [Chinese (中文简介)](/README_zh-CN.md) • [Russian (Русский)](/README_ru.md)
+[Download](https://simplewebserver.org/download/) • [Documentation](https://simplewebserver.org/docs/options.html) • [Build from source](https://simplewebserver.org/docs/build.html) • [Chinese (中文简介)](/README_zh-CN.md) • [Russian (Русский)](/README_ru.md) • [Japanese (日本語)](/README_ja.md)
Create local web servers in just a few clicks with an easy to use interface. Built with Electron.
diff --git a/README_ja.md b/README_ja.md
new file mode 100644
index 00000000..835bd482
--- /dev/null
+++ b/README_ja.md
@@ -0,0 +1,15 @@
+# Simple Web Server
+
+[ダウンロード](https://simplewebserver.org/download/) • [ドキュメント](https://simplewebserver.org/docs/options.html) • [ソースからビルド](https://simplewebserver.org/docs/build.html) • [英語 (English)](/README.md) • [中国語 (中文简介)](/README_zh-CN.md) • [ロシア語 (Русский)](/README_ru.md)
+
+簡単UIでほんの数クリックだけでローカルウェブサーバーを作れます。開発にはElectronを使用。
+
+特長:
+- 設定が簡単
+- 同時に複数のサーバーを動かせます。
+- 単一ページアプリ(SPA)のサポート
+- サーバーのバックグラウンド実行可能
+
+![スクリーンショット](https://user-images.githubusercontent.com/11605395/163694811-46e3b79c-a187-4c78-b622-6250a6d5d9d0.jpeg)
+
+Simple Web Server は [Web Server for Chrome](https://github.com/kzahel/web-server-chrome) の後継です。
diff --git a/index.js b/index.js
index 60a2afd9..ca9d19f9 100644
--- a/index.js
+++ b/index.js
@@ -448,6 +448,10 @@ function getLanguage() {
language = "zh_CN";
break;
}
+ if (system_langs[i].indexOf("ja") == 0) {
+ language = "ja";
+ break;
+ }
}
}
diff --git a/lang.js b/lang.js
index e2327cbb..f682a339 100644
--- a/lang.js
+++ b/lang.js
@@ -1,7 +1,8 @@
languages = {
"en": "English",
"ru": "Русский",
- "zh_CN": "简体中文"
+ "zh_CN": "简体中文",
+ "ja": "日本語"
}
lang = {
@@ -415,5 +416,142 @@ lang = {
"issues_and_suggestions": "疑问与建议",
"web_server_url": "Web server URL",
"ignore_update": "忽略此更新"
+ },
+ "ja": {
+ "settings": "設定",
+ "stop_and_quit": "停止・終了",
+ "new_server": "新規サーバー",
+ "delete_server": "サーバー削除",
+ "delete_server_confirm": "サーバーを削除しますか?",
+ "delete_server_confirm_description": "この操作は元に戻せません。",
+ "prompt_confirm": "確定",
+ "cancel": "キャンセル",
+ "save_changes": "変更を保存",
+ "get_started": "使用開始",
+ "prompt_done": "完了",
+ "back": "戻る",
+ "help": "ヘルプ",
+ "setting_language": "言語",
+ "help_us_translate": "翻訳を手伝ってください",
+ "setting_background": "バックグラウンド実行",
+ "setting_background_description": "有効にすると、このアプリを閉じてもサーバーは止まりません。バックグラウンド実行中のサーバーを止めるには「停止・終了」ボタンを押してください。",
+ "setting_tray": "システムトレイ/メニューバーにアイコンを表示",
+ "setting_tray_macos": "メニューバーにアイコンを表示",
+ "setting_tray_windows": "システムトレイにアイコンを表示",
+ "setting_tray_description": "有効にすると、Simple Web Server起動中はシステムトレイ/メニューバーにショートカットアイコンを表示します。",
+ "setting_updates": "更新を確認する",
+ "setting_updates_description": "アプリの更新がないか定期的に確認します。インストールは自動的には行いません。",
+ "setting_theme": "外観",
+ "setting_theme_description": "外観の変更(ライト/ダーク テーマ)。デフォルトはシステムのテーマに従います。",
+ "setting_theme_system": "自動 (システム)",
+ "setting_theme_light": "ライト",
+ "setting_theme_dark": "ダーク",
+ "setting_plugins": "プラグイン",
+ "setting_plugins_description": "プラグインは設定画面でできること以上の高度なカスタマイズを可能にします。 プラグインの詳細について。
プラグインをインストールするには、「プラグイン追加」ボタンをクリックしてディレクトリまたはZIPファイルを選択してください。インストールしたプラグインは適用したいサーバーごとに個別に有効にする必要があります。
プラグインはサンドボックス化されておらず、本アプリと同じパーミッションで動作します。信頼できる開発者が提供するプラグイン以外はインストールしないでください。",
+ "add_plugin": "プラグイン追加",
+ "plugin_choose_folder": "フォルダ選択",
+ "plugin_choose_zip": ".zipファイル選択",
+ "add_plugin_confirm": "プラグイン \"[NAME]\" を追加しますか?",
+ "add_plugin_confirm_description": "あなたがよく知る、信頼できる開発者のプラグイン以外はインストールしないでください。
プラグインはサンドボックス化されておらず、本アプリと同じパーミッションで動作します。",
+ "add_plugin_failed": "プラグインのインストールに失敗しました",
+ "add_plugin_invalid": "無効なプラグイン",
+ "add_plugin_failed_description": "選択されたディレクトリまたはZIPファイルのなかに plugin.json
が見つかりませんでした。",
+ "remove_plugin": "プラグイン削除",
+ "remove_plugin_confirm": "プラグイン \"[NAME]\" を削除しますか?",
+ "remove_plugin_confirm_description": "すべてのサーバーのこのプラグインに関する設定がクリアされます。All server Enabling this option requires local network access. You may see a firewall permission prompt when enabling this option, and you must allow access in order for the web server to work over LAN.options for this plugin will be cleared. If you want to update the plugin without resetting server options, just add the new version of the plugin instead of removing it first.",
+ "edit_server": "サーバー編集",
+ "add_server": "サーバー追加",
+ "create_server": "サーバー作成",
+ "option_path": "フォルダのパス",
+ "option_path_description": "サーバーで公開するファイルのあるディレクトリ。もしディレクトリが隠しフォルダの場合は、隠しファイル/dotファイルを公開するオプションを有効にしてください。",
+ "choose_folder": "フォルダ選択",
+ "path_missing": "フォルダのパスを選択してください",
+ "option_port": "ポート",
+ "option_port_description": "このローカルサーバーにアクセスできるポート番号(1~65535の整数)。 http://localhost:[PORT]
でウエブサイトにアクセスできます。",
+ "port_invalid": "1~65535の整数を入れてください",
+ "port_in_use": "このポートは既に使用中です",
+ "option_localnetwork": "ローカルネットワークに公開",
+ "option_localnetwork_description": "このウェブサーバーをLAN内の他のPCからもアクセス可能にします。他のPCからは、このPCのローカルIPアドレスと指定したポート番号でアクセスしてください。ローカルIPアドレスはサーバーURLの下に表示されています。
このオプションを利用するには、ローカルネットワークアクセスが必要です。このオプションを有効にすると、ファイアウォールがアクセスの許可を求めるメッセージを表示する場合があります。ウェブサーバーをLAN経由で利用するには、アクセスを許可する必要があります。",
+ "option_localnetwork_abbreviation": "LAN",
+ "section_basic_rules": "基本設定",
+ "option_showIndex": "index.html自動表示",
+ "option_showIndex_description": "ファイルパスが指定されていない場合は、(もしあれば)自動的にindex.html
を表示します。",
+ "option_spa": "単一ページ書き換え(SPA用)",
+ "option_spa_description": "存在しないパスをすべて単一のページへのパスに自動的に書き換えます。Single Page Applications 参照。",
+ "option_rewriteTo": "書き換え先(SPA用)",
+ "option_rewriteTo_description": "単一ページ書き換えを有効にした時、書き換え先のファイルを指定します。Single Page Applications 参照。",
+ "option_directoryListing": "ディレクトリ内一覧表示",
+ "option_directoryListing_description": "ディレクトリを指定したとき404ページではなく、ディレクトリ内のファイル一覧を表示します。",
+ "option_excludeDotHtml": "拡張子 .html を除外",
+ "option_excludeDotHtml_description": "URLの拡張子 .htm および .html を除外します。例えば /example.html
は /example
にリダイレクトされます。もしそこに拡張子がない同名ファイルが存在してもHTMLファイルの方を表示します。",
+ "section_advanced_rules": "拡張設定",
+ "option_ipv6": "IPV6で待ち受け",
+ "option_ipv6_description": "デフォルトのIPV4ではなくIPV6で待ち受けます。ウェブサーバーのURLもIPV4ではなくIPV6用になりますが、LAN内では一部のIPV4アドレスも依然有効です。",
+ "option_ipv6_abbreviation": "IPV6",
+ "option_cacheControl": "Cache-Controlヘッダーの値",
+ "option_cacheControl_description": "HTTPヘッダーのCache-Control
の値をカスタマイズします。 Cache-Controlヘッダーの詳細について。",
+ "option_cors": "CORSヘッダー付与",
+ "option_cors_description": "クロスオリジン要求を許可します。 Access-Control-Allow-Origin
ヘッダーを*
、 Access-Control-Allow-Methods
ヘッダーをGET, POST, PUT, DELETE
、 Access-Control-Max-Age
ヘッダーを120
に設定します。 オリジン間リソース共有(CORS)の詳細について。",
+ "option_hiddenDotFiles": "隠しファイル/dotファイルを公開する",
+ "option_hiddenDotFiles_description": "隠しファイル/dotファイルへのアクセスを許可します。 名前が.
で始まるファイルまたはフォルダが該当します。",
+ "option_upload": "ファイルのアップロードを許可",
+ "option_upload_description": "PUT/POSTリクエストを許可します。隠しファイル/dotファイルが有効な場合は、それらも含まれます。",
+ "option_replace": "ファイルの置き換え許可",
+ "option_replace_description": "ファイルのアップロードが可能な時、ファイルが既に存在する場合に置き換えを可能にします。隠しファイル/dotファイルが有効な場合は、それらも含まれます。",
+ "option_delete": "ファイルの削除を許可",
+ "option_delete_description": "DELETEリクエストを許可します。隠しファイル/dotファイルが有効な場合は、それらも含まれます。",
+ "option_staticDirectoryListing": "常に静的なディレクトリ内一覧を使用",
+ "option_staticDirectoryListing_description": "ディレクトリ内一覧ページでのJavaScriptによる機能強化を無効化します。",
+ "option_hiddenDotFilesDirectoryListing": "ディレクトリ内一覧に隠しファイル/dotファイルを表示",
+ "option_hiddenDotFilesDirectoryListing_description": "隠しファイル/dotファイルが有効な場合、ディレクトリ内一覧ページでもそれらを表示します。この対象には.swshtaccess
ファイルも含まれます。",
+ "option_htaccess": ".swshtaccessファイル適用",
+ "option_htaccess_description": ".swshtaccess
ファイルを使って、ディレクトリごとに追加のルールを設定できます。.swshtaccessファイルを使用した拡張設定について。
これは実験的機能であり、今後仕様変更される場合があります。代わりにプラグインの利用もご検討ください。",
+ "section_error_pages": "エラーページ",
+ "option_custom404": "カスタム404ページのファイルパス",
+ "option_custom404_description": "独自の404ページ用ファイルのパスです。空の場合や無効なパスの場合は、汎用の404ページが表示されます。",
+ "option_custom403": "カスタム403ページのファイルパス",
+ "option_custom403_description": "独自の403ページ用ファイルのパスです。空の場合や無効なパスの場合は、汎用の403ページが表示されます。",
+ "option_custom401": "カスタム401ページのファイルパス",
+ "option_custom401_description": "独自の401ページ用ファイルのパスです。空の場合や無効なパスの場合は、汎用の401ページが表示されます。",
+ "option_customErrorReplaceString": "カスタムエラーパス変数",
+ "option_customErrorReplaceString_description": "カスタムエラーページ内に指定した文字列があれば、その部分を現在のパスに置き換えます。例えば、カスタム404ページに ファイル {{PATH}} が見つかりません
という文があり、このオプションの値を {{PATH}}
に設定していた場合、実際にエラーページが表示されるときは ファイル /example.txt が見つかりません
のように書き換えられます。",
+ "section_security": "セキュリティ",
+ "option_https": "HTTPSを使用する",
+ "option_https_description": "サーバーへのアクセスにhttpではなくセキュア通信(https)を使用します。同一のポートを使うため、httpとhttpsを同時には使用できません。HTTPSの使用について。",
+ "option_https_abbreviation": "HTTPS",
+ "option_httpsCert": "SSL/TLS証明書",
+ "option_httpsCert_description": "必要に応じて、指定したHTTPS証明書の使用を強制できます。HTTPSの使用について。",
+ "option_httpsKey": "SSL/TLSプライベートキー",
+ "option_httpsKey_description": "必要に応じて、指定したHTTPSプライベートキーの使用を強制できます。 HTTPSの使用について。",
+ "generate_crypto": "ダミー証明書生成",
+ "generate_crypto_overwrite": "証明書とプライベートキーを設定したものに置き換えますか?",
+ "generate_crypto_overwrite_description": "証明書とプライベートキーはすでに存在します。この操作によってそれらを置き換えます。",
+ "option_httpAuth": "HTTPベーシック認証の有効化",
+ "option_httpAuth_description": "HTTPベーシック認証プロトコルを使用した認証を要求します。 認証に使用する[ベーシック認証ユーザー名]と[ベーシック認証パスワード]を指定してください。ユーザー名またはパスワードが空、または無効な場合、ウェブサーバーにアクセスできなくなります。",
+ "option_httpAuthUsername": "ベーシック認証ユーザー名",
+ "option_httpAuthUsername_description": "ベーシック認証のユーザー名。:
を含んでいてはいけません。",
+ "httpAuthUsername_invalid": "ユーザー名に:
を含めることはできません。",
+ "option_httpAuthPassword": "ベーシック認証パスワード",
+ "option_httpAuthPassword_description": "ベーシック認証のパスワード。平文で保存されます。",
+ "option_ipThrottling": "IPアドレスごとの最大接続数",
+ "option_ipThrottling_description": "IPアドレスごとのサーバー接続数を制限できます。0 を指定すると接続数は無制限になります。",
+ "ipThrottling_invalid": "0 より大きい数字を入れてください",
+ "state_stopped": "停止中",
+ "state_starting": "起動中...",
+ "state_running": "稼働中",
+ "state_error": "エラー",
+ "update_available": "Simple Web Serverの新しいバージョンが利用可能です",
+ "enabled_switch": "有効",
+ "no_servers": "まだサーバーが作成されていません",
+ "error_port_in_use": "ポートが使用中です",
+ "error_port_in_use_description": "ポート [PORT] が既にほかのプログラムに使用されているため、ウェブサーバーを開始できませんでした。",
+ "error_file_system": "ファイルシステムエラー",
+ "error_plugins": "プラグイン開始エラー",
+ "error_generic": "エラー",
+ "version": "バージョン",
+ "documentation": "ドキュメント",
+ "issues_and_suggestions": "問題の報告や提案",
+ "web_server_url": "ウェブサーバーURL",
+ "ignore_update": "更新を無視する"
}
}
\ No newline at end of file
From ddf20afeaf5bd5877356a70b22689e3fc4165251 Mon Sep 17 00:00:00 2001
From: Terren <11605395+terreng@users.noreply.github.com>
Date: Fri, 2 Jun 2023 16:22:22 -0700
Subject: [PATCH 2/5] Throw actual error instead of "Error checking entry"
---
WSC/FileSystem.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/WSC/FileSystem.js b/WSC/FileSystem.js
index a4423fc2..73d8e472 100644
--- a/WSC/FileSystem.js
+++ b/WSC/FileSystem.js
@@ -216,7 +216,7 @@ class FileSystem {
stats = fs.statSync(mainPath);
} catch(e) {
bookmarks.release(bm);
- throw new Error('Error checking entry');
+ throw e;
}
bookmarks.release(bm);
if (!stats.isDirectory()) {
From cab49f9ca4334309623957db9a9907f0f83a1f4a Mon Sep 17 00:00:00 2001
From: Terren <11605395+terreng@users.noreply.github.com>
Date: Tue, 6 Jun 2023 20:50:34 -0700
Subject: [PATCH 3/5] Japanese website homepage
---
website/src/.vuepress/config.js | 63 +++++++++++++++++++++++++++++++++
website/src/index.md | 1 +
website/src/ja/index.md | 24 +++++++++++++
3 files changed, 88 insertions(+)
create mode 100755 website/src/ja/index.md
diff --git a/website/src/.vuepress/config.js b/website/src/.vuepress/config.js
index 8f2f8d48..1e4a0a7a 100755
--- a/website/src/.vuepress/config.js
+++ b/website/src/.vuepress/config.js
@@ -27,6 +27,10 @@ module.exports = {
'/ru/': {
lang: 'ru',
description: 'Создавайте локальный веб-сервер в несколько кликов с помощью простого интерфейса.'
+ },
+ '/ja/': {
+ lang: 'ja',
+ description: '簡単UIでほんの数クリックだけでローカルウェブサーバーを作れます。'
}
},
themeConfig: {
@@ -208,6 +212,65 @@ module.exports = {
]
}
},
+ '/ja/': {
+ label: '日本',
+ selectText: '言語',
+ nav: [
+ {
+ text: 'Download',
+ link: '/download.html',
+ },
+ {
+ text: 'Documentation',
+ link: '/docs/options.html'
+ },
+ {
+ text: 'GitHub',
+ link: 'https://github.com/terreng/simple-web-server'
+ }
+ ],
+ sidebar: {
+ '/docs/': [
+ {
+ title: 'Configuration',
+ collapsable: false,
+ children: [
+ 'options',
+ 'settings',
+ ]
+ },
+ {
+ title: 'Guides',
+ collapsable: false,
+ children: [
+ 'config file',
+ 'https',
+ 'logs',
+ 'build',
+ 'wsc'
+ ]
+ },
+ {
+ title: 'Plugins',
+ collapsable: false,
+ children: [
+ 'plugins',
+ 'plugin manifest file',
+ 'plugin script'
+ ]
+ },
+ {
+ title: 'Advanced Guides',
+ collapsable: false,
+ children: [
+ 'swsaccess',
+ 'custom scripts',
+ 'custom request handler',
+ ]
+ }
+ ]
+ }
+ },
},
sidebarDepth: 3,
repo: '',
diff --git a/website/src/index.md b/website/src/index.md
index b95eded4..5858b612 100755
--- a/website/src/index.md
+++ b/website/src/index.md
@@ -20,4 +20,5 @@ features: