From 2f172c2fda0073da86a60a88a221a15904b84bc9 Mon Sep 17 00:00:00 2001 From: Gunther Brunner Date: Thu, 4 Sep 2014 16:10:42 +0900 Subject: [PATCH] Add upload and installation errors. --- res/app/components/stf/install/index.js | 4 + .../stf/install/install-error-filter.js | 12 +++ .../components/stf/install/install-spec.js | 13 +++ .../stf/language/language-provider.js | 2 +- res/app/components/stf/upload/index.js | 4 + .../stf/upload/upload-error-filter.js | 10 ++ res/app/components/stf/upload/upload-spec.js | 13 +++ .../control-panes/dashboard/upload/index.js | 4 +- .../dashboard/upload/upload-controller.js | 4 +- .../dashboard/upload/upload.jade | 31 ++---- res/app/layout/stf-styles.css | 11 ++ res/common/lang/po/stf.ja.po | 101 +++++++++++------- res/common/lang/po/stf.pot | 23 ++-- res/common/lang/translations/stf.ja.json | 2 +- 14 files changed, 165 insertions(+), 69 deletions(-) create mode 100644 res/app/components/stf/install/index.js create mode 100644 res/app/components/stf/install/install-error-filter.js create mode 100644 res/app/components/stf/install/install-spec.js create mode 100644 res/app/components/stf/upload/index.js create mode 100644 res/app/components/stf/upload/upload-error-filter.js create mode 100644 res/app/components/stf/upload/upload-spec.js diff --git a/res/app/components/stf/install/index.js b/res/app/components/stf/install/index.js new file mode 100644 index 00000000..4f2e1b46 --- /dev/null +++ b/res/app/components/stf/install/index.js @@ -0,0 +1,4 @@ +module.exports = angular.module('stf.install-service', [ + require('gettext').name +]) + .filter('installError', require('./install-error-filter')) diff --git a/res/app/components/stf/install/install-error-filter.js b/res/app/components/stf/install/install-error-filter.js new file mode 100644 index 00000000..cae854f5 --- /dev/null +++ b/res/app/components/stf/install/install-error-filter.js @@ -0,0 +1,12 @@ +// From here: https://github.com/android/platform_frameworks_base/blob/ +// master/core/java/android/content/pm/PackageManager.java#L371 + +module.exports = function installErrorFilter(gettext) { + return function (text) { + return { + INSTALL_FAILED_OLDER_SDK: gettext('New package failed because the ' + + 'current SDK version is older than that required by the package') + // TODO: do the rest + }[text] || text + } +} diff --git a/res/app/components/stf/install/install-spec.js b/res/app/components/stf/install/install-spec.js new file mode 100644 index 00000000..69a6450a --- /dev/null +++ b/res/app/components/stf/install/install-spec.js @@ -0,0 +1,13 @@ +describe('install', function() { + + beforeEach(angular.mock.module(require('./').name)) + + it('should ...', inject(function($filter) { + + var filter = $filter('install') + + expect(filter('input')).toEqual('output') + + })) + +}) diff --git a/res/app/components/stf/language/language-provider.js b/res/app/components/stf/language/language-provider.js index 7da909ae..763289c6 100644 --- a/res/app/components/stf/language/language-provider.js +++ b/res/app/components/stf/language/language-provider.js @@ -2,7 +2,7 @@ module.exports = function LanguageProvider(AppStateProvider) { var provider = { - selectedLanguage: 'en' + selectedLanguage: 'ja' // default } var a = AppStateProvider.$get() diff --git a/res/app/components/stf/upload/index.js b/res/app/components/stf/upload/index.js new file mode 100644 index 00000000..05c380e9 --- /dev/null +++ b/res/app/components/stf/upload/index.js @@ -0,0 +1,4 @@ +module.exports = angular.module('stf.upload-service', [ + require('gettext').name +]) + .filter('uploadError', require('./upload-error-filter')) diff --git a/res/app/components/stf/upload/upload-error-filter.js b/res/app/components/stf/upload/upload-error-filter.js new file mode 100644 index 00000000..3f69d5d7 --- /dev/null +++ b/res/app/components/stf/upload/upload-error-filter.js @@ -0,0 +1,10 @@ +module.exports = function uploadErrorFilter(gettext) { + return function (text) { + return { + 'fail_invalid_app_file': gettext('Uploaded file is not valid'), + 'fail_download': gettext('Failed to download file'), + 'fail_invalid_url': gettext('Cannot access specified URL'), + 'fail': gettext('Upload failed') + }[text] || gettext('Upload unknown error') + } +} diff --git a/res/app/components/stf/upload/upload-spec.js b/res/app/components/stf/upload/upload-spec.js new file mode 100644 index 00000000..539a76f4 --- /dev/null +++ b/res/app/components/stf/upload/upload-spec.js @@ -0,0 +1,13 @@ +describe('upload', function() { + + beforeEach(angular.mock.module(require('./').name)) + + it('should ...', inject(function($filter) { + + var filter = $filter('upload') + + expect(filter('input')).toEqual('output') + + })) + +}) diff --git a/res/app/control-panes/dashboard/upload/index.js b/res/app/control-panes/dashboard/upload/index.js index 8d1622ec..e4c69f0c 100644 --- a/res/app/control-panes/dashboard/upload/index.js +++ b/res/app/control-panes/dashboard/upload/index.js @@ -6,7 +6,9 @@ module.exports = angular.module('stf.upload', [ 'angularFileUpload', require('./activities').name, require('stf/settings').name, - require('stf/storage').name + require('stf/storage').name, + require('stf/install').name, + require('stf/upload').name ]) .run(["$templateCache", function ($templateCache) { $templateCache.put('control-panes/dashboard/upload/upload.jade', diff --git a/res/app/control-panes/dashboard/upload/upload-controller.js b/res/app/control-panes/dashboard/upload/upload-controller.js index 4c44f1a5..68fdb573 100644 --- a/res/app/control-panes/dashboard/upload/upload-controller.js +++ b/res/app/control-panes/dashboard/upload/upload-controller.js @@ -31,6 +31,7 @@ module.exports = function UploadCtrl( $scope.$apply(function () { $scope.upload = uploadResult }) + if (uploadResult.success) { return $scope.maybeInstall(uploadResult.body) } @@ -93,7 +94,6 @@ module.exports = function UploadCtrl( $scope.upload = null } else { - console.log('Upload error', err) $scope.upload = { progress: 100 , lastData: 'fail' @@ -105,6 +105,7 @@ module.exports = function UploadCtrl( }) } + $scope.maybeInstall = function (options) { if ($scope.installEnabled) { return $scope.control.install(options) @@ -120,6 +121,7 @@ module.exports = function UploadCtrl( installResult.manifest = options.manifest $scope.treeData = installResult.manifest $scope.installation = installResult + $scope.installationError = installResult.error }) }) } diff --git a/res/app/control-panes/dashboard/upload/upload.jade b/res/app/control-panes/dashboard/upload/upload.jade index 62f06d6c..05805991 100644 --- a/res/app/control-panes/dashboard/upload/upload.jade +++ b/res/app/control-panes/dashboard/upload/upload.jade @@ -10,8 +10,8 @@ input(type='checkbox', ng-model='installEnabled') span(translate) Install - .widget-content.padded(style='padding: 0; padding-bottom: 15px;') - // TODO: remove padding-bottom when drop file is implemented + .widget-content.padded() + //.widget-content.padded(style='padding: 0; padding-bottom: 15px;') //.col-md-10.col-md-offset-1 //.input-group.form-inline @@ -31,24 +31,6 @@ //treecontrol.tree-classic(tree-model='treeData', options='treeOptions') span employee: {{node.name}} age {{node.age}} - pre(ng-if='upload.error') Error: {{ upload.error }} - p(translate) Error - div(ng-switch='upload.error') - strong(ng-switch-when='fail_invalid_app_file') - span(translate) Uploaded file is not valid - strong(ng-switch-when='fail_download') - span(translate) Failed to download file - strong(ng-switch-when='fail_invalid_url') - span(translate) Cannot access specified URL - strong(ng-switch-when='fail') - span(translate) Upload failed - strong(ng-switch-default) - span Error code: {{ upload.error }} - - //.upload-status(ng-if='upload && !upload.settled') - progressbar(max='100', value='upload.progress', ng-if='!upload.settled', - ng-class='{"active": !upload.settled}').progress-striped - .upload-status(ng-if='upload || installation') accordion(close-others='false').pointer @@ -96,3 +78,12 @@ progressbar(max='100', value='taskProgress()', ng-if='!taskFinished()', ng-class='{"active": !taskFinished()}').progress-striped + + + alert(type='danger', close='upload.error = null', ng-show='upload.error') + strong(translate) Error: + span {{ upload.error | uploadError | translate }} + + alert(type='danger', close='installationError = undefined', ng-show='installationError') + strong(translate) Error: + span {{ installationError | installError | translate }} ({{ installationError }}) diff --git a/res/app/layout/stf-styles.css b/res/app/layout/stf-styles.css index 4970c8cb..59046f0c 100644 --- a/res/app/layout/stf-styles.css +++ b/res/app/layout/stf-styles.css @@ -403,3 +403,14 @@ input { .transparent-border { border: 1px solid transparent; } + +/* Bootstrap close button is misaligned for some reason */ +.alert-dismissable .close, +.alert-dismissible .close { + right: auto; +} + +/* Reset alert margin */ +.alert { + margin-bottom: 0; +} diff --git a/res/common/lang/po/stf.ja.po b/res/common/lang/po/stf.ja.po index 0cfcef53..0f8c107e 100644 --- a/res/common/lang/po/stf.ja.po +++ b/res/common/lang/po/stf.ja.po @@ -130,10 +130,6 @@ msgstr "バッテリー温度" msgid "Bluetooth" msgstr "Bluetooth" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/browser/browser.html -msgid "Browser" -msgstr "ブラウザ" - #: /Users/a12907/STF/stf/res/app/components/stf/device/device-info-filter/index.js msgid "Busy" msgstr "貸し出し中" @@ -150,7 +146,7 @@ msgstr "CPU" msgid "Camera" msgstr "カメラ" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/upload/upload.html +#: /Users/a12907/STF/stf/res/app/components/stf/upload/upload-error-filter.js msgid "Cannot access specified URL" msgstr "指定されたURLはアクセスできません" @@ -305,13 +301,6 @@ msgstr "放電中" msgid "Disconnected" msgstr "切断中" -#: /Users/a12907/STF/stf/res/app/components/stf/socket/socket-state/socket-state-directive.js -msgid "" -"Disconnected.
Socket connection was lost, try again reloading the page." -msgstr "" -"接続が切れました。
ソケット接続が失われました。もう一度ページを再ロード" -"してみてください。" - #: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html msgid "Display" msgstr "ディスプレー" @@ -344,10 +333,6 @@ msgstr "通知を有効にする" msgid "Encrypted" msgstr "暗号化" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/upload/upload.html -msgid "Error" -msgstr "エラー" - #: /Users/a12907/STF/stf/res/app/components/stf/control/control-service.js msgid "Error while getting data" msgstr "データ取得中にエラーが発生しました。" @@ -360,6 +345,10 @@ msgstr "再接続中にエラーが発生しました。" msgid "Error." msgstr "エラー" +#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/upload/upload.html +msgid "Error:" +msgstr "エラー:" + #: /Users/a12907/STF/stf/res/app/control-panes/advanced/port-forwarding/port-forwarding-controller.js msgid "Error: Forwarding ports failed." msgstr "エラー:ポートフォワーディングが失敗しました。" @@ -372,7 +361,7 @@ msgstr "イーサーネット" msgid "FPS" msgstr "FPS" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/upload/upload.html +#: /Users/a12907/STF/stf/res/app/components/stf/upload/upload-error-filter.js msgid "Failed to download file" msgstr "ファイルのダウンロードが失敗しした。" @@ -599,6 +588,14 @@ msgstr "ブラウジング" msgid "Network" msgstr "ネットワーク" +#: /Users/a12907/STF/stf/res/app/components/stf/install/install-error-filter.js +msgid "" +"New package failed because the current SDK version is older than that " +"required by the package" +msgstr "" +"この端末のSDKバージョンがパッケージが必要としているSDKのバージョンより古いた" +"め、失敗しました。" + #: /Users/a12907/STF/stf/tmp/html/app/control-panes/advanced/input/input.html msgid "Next" msgstr "次" @@ -631,6 +628,10 @@ msgstr "写真はありません" msgid "No screenshots taken" msgstr "キャプチャはありません" +#: /Users/a12907/STF/stf/tmp/html/app/control-panes/automation/device-settings/device-settings.html +msgid "Normal Mode" +msgstr "通常モード" + #: /Users/a12907/STF/stf/res/app/components/stf/device/device-info-filter/index.js msgid "Not Charging" msgstr "充電されていない" @@ -805,22 +806,10 @@ msgstr "正常に再接続しました。" msgid "Record" msgstr "記録する" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/shell/shell.html -msgid "Reference" -msgstr "参考" - #: /Users/a12907/STF/stf/tmp/html/app/components/stf/common-ui/refresh-page/refresh-page.html msgid "Refresh" msgstr "更新" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/browser/browser.html -msgid "Relaunch" -msgstr "再起動" - -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/browser/browser.html -msgid "Relaunch the browser" -msgstr "ブラウザを再起動する" - #: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html #: /Users/a12907/STF/stf/res/app/device-list/device-column-service.js msgid "Released" @@ -831,13 +820,11 @@ msgstr "発売日" msgid "Reload" msgstr "再読込" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/advanced/remote-debug/remote-debug.html #: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/remote-debug/remote-debug.html msgid "Remote debug" msgstr "リモートデバッグ" #: /Users/a12907/STF/stf/tmp/html/app/device-list/device-list.html -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/browser/browser.html #: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/navigation/navigation.html msgid "Reset" msgstr "初期化" @@ -846,7 +833,6 @@ msgstr "初期化" msgid "Reset Settings" msgstr "すべての設定をリセット" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/browser/browser.html #: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/navigation/navigation.html msgid "Reset all browser settings" msgstr "ブラウザの設定をリセットする" @@ -895,17 +881,20 @@ msgstr "JavaScript注入" msgid "Run command" msgstr "コマンドを実行する" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/remote-debug/remote-debug.html +#: /Users/a12907/STF/stf/res/app/control-panes/dashboard/remote-debug/remote-debug-controller.js +msgid "" +"Run the following on your command line to debug the device from your Browser" +msgstr "" +"次のコマンドをコマンドラインで実行しますと、お使いのブラウザより端末のデバッ" +"グができます。" + +#: /Users/a12907/STF/stf/res/app/control-panes/dashboard/remote-debug/remote-debug-controller.js msgid "" "Run the following on your command line to debug the device from your IDE" msgstr "" "次のコマンドをコマンドラインで実行しますと、お使いのIDEより端末のデバッグがで" "きます。" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/advanced/remote-debug/remote-debug.html -msgid "Run the following on your command line:" -msgstr "次のコマンドをコマンドラインで実行してください。" - #: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html msgid "SD Card Mounted" msgstr "SDカード" @@ -980,6 +969,14 @@ msgstr "サインイン" msgid "Sign Out" msgstr "サインアウト" +#: /Users/a12907/STF/stf/tmp/html/app/control-panes/automation/device-settings/device-settings.html +msgid "Silent Mode" +msgstr "マナーモード" + +#: /Users/a12907/STF/stf/res/app/components/stf/socket/socket-state/socket-state-directive.js +msgid "Socket connection was lost, try again reloading the page." +msgstr "接続が切れました。ページをリロードしてみてください。" + #: /Users/a12907/STF/stf/res/app/components/stf/device/device-info-filter/index.js msgid "Someone stole your device." msgstr "誰かはデバイスを盗みました。" @@ -1111,10 +1108,15 @@ msgid "Upload complete" msgstr "アップロードが完了しました" #: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/upload/upload.html +#: /Users/a12907/STF/stf/res/app/components/stf/upload/upload-error-filter.js msgid "Upload failed" msgstr "アップロードが失敗しました" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/upload/upload.html +#: /Users/a12907/STF/stf/res/app/components/stf/upload/upload-error-filter.js +msgid "Upload unknown error" +msgstr "アップロード未知エラー" + +#: /Users/a12907/STF/stf/res/app/components/stf/upload/upload-error-filter.js msgid "Uploaded file is not valid" msgstr "アップロードされたファイル" @@ -1162,6 +1164,10 @@ msgstr "バージョン" msgid "Version Update" msgstr "バージョンアップ" +#: /Users/a12907/STF/stf/tmp/html/app/control-panes/automation/device-settings/device-settings.html +msgid "Vibrate Mode" +msgstr "マナーモード(バイブON)" + #: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html msgid "Voltage" msgstr "電圧" @@ -1186,6 +1192,10 @@ msgstr "Web" msgid "WiFi" msgstr "無線LAN" +#: /Users/a12907/STF/stf/tmp/html/app/control-panes/automation/device-settings/device-settings.html +msgid "WiFi Enabled" +msgstr "無線LAN:ON" + #: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/apps/apps.html msgid "WiFi Settings" msgstr "無線LAN設定" @@ -1230,6 +1240,21 @@ msgstr "{{ device.enhancedName }}のステータス:" msgid "{{ device.enhancedName }} was disconnected" msgstr "{{ device.enhancedName }}への接続が切れました" +#~ msgid "Browser" +#~ msgstr "ブラウザ" + +#~ msgid "Reference" +#~ msgstr "参考" + +#~ msgid "Relaunch" +#~ msgstr "再起動" + +#~ msgid "Relaunch the browser" +#~ msgstr "ブラウザを再起動する" + +#~ msgid "Run the following on your command line:" +#~ msgstr "次のコマンドをコマンドラインで実行してください。" + #~ msgid "Remove Accounts" #~ msgstr "アカウント削除" diff --git a/res/common/lang/po/stf.pot b/res/common/lang/po/stf.pot index e9dfb20e..65a7c9d6 100644 --- a/res/common/lang/po/stf.pot +++ b/res/common/lang/po/stf.pot @@ -142,7 +142,7 @@ msgstr "" msgid "Camera" msgstr "" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/upload/upload.html +#: /Users/a12907/STF/stf/res/app/components/stf/upload/upload-error-filter.js msgid "Cannot access specified URL" msgstr "" @@ -329,10 +329,6 @@ msgstr "" msgid "Encrypted" msgstr "" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/upload/upload.html -msgid "Error" -msgstr "" - #: /Users/a12907/STF/stf/res/app/components/stf/control/control-service.js msgid "Error while getting data" msgstr "" @@ -345,6 +341,10 @@ msgstr "" msgid "Error." msgstr "" +#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/upload/upload.html +msgid "Error:" +msgstr "" + #: /Users/a12907/STF/stf/res/app/control-panes/advanced/port-forwarding/port-forwarding-controller.js msgid "Error: Forwarding ports failed." msgstr "" @@ -357,7 +357,7 @@ msgstr "" msgid "FPS" msgstr "" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/upload/upload.html +#: /Users/a12907/STF/stf/res/app/components/stf/upload/upload-error-filter.js msgid "Failed to download file" msgstr "" @@ -584,6 +584,10 @@ msgstr "" msgid "Network" msgstr "" +#: /Users/a12907/STF/stf/res/app/components/stf/install/install-error-filter.js +msgid "New package failed because the current SDK version is older than that required by the package" +msgstr "" + #: /Users/a12907/STF/stf/tmp/html/app/control-panes/advanced/input/input.html msgid "Next" msgstr "" @@ -1086,10 +1090,15 @@ msgid "Upload complete" msgstr "" #: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/upload/upload.html +#: /Users/a12907/STF/stf/res/app/components/stf/upload/upload-error-filter.js msgid "Upload failed" msgstr "" -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/upload/upload.html +#: /Users/a12907/STF/stf/res/app/components/stf/upload/upload-error-filter.js +msgid "Upload unknown error" +msgstr "" + +#: /Users/a12907/STF/stf/res/app/components/stf/upload/upload-error-filter.js msgid "Uploaded file is not valid" msgstr "" diff --git a/res/common/lang/translations/stf.ja.json b/res/common/lang/translations/stf.ja.json index ece050a8..2e5194bc 100644 --- a/res/common/lang/translations/stf.ja.json +++ b/res/common/lang/translations/stf.ja.json @@ -1 +1 @@ -{"ja":{"-":"-","A new version of STF is available":"STFの新しいバージョンがリリースされました","ABI":"ABI","AC":"AC","Account":"アカウント","Action":"アクション","Actions":"アクション","Activity":"アクティビティ","Add":"追加","Admin mode has been disabled.":"管理モードは無効になりました。","Admin mode has been enabled.":"管理モードは有効になりました。","Advanced":"高度機能","Advanced Input":"高度な入力","Airplane Mode":"機内モード","App":"アプリ","App Store":"アプリストア","App Upload":"アプリアップロード","Apps":"アプリ","Are you sure you want to reboot this device?":"この端末を再起動しますか?","Automation":"自動化","Available":"利用可能","Back":"戻る","Battery":"バッテリー","Battery Health":"バッテリー健康状態","Battery Level":"バッテリーレベル","Battery Source":"バッテリー電力源","Battery Status":"バッテリー状態","Battery Temp":"バッテリー温度","Bluetooth":"Bluetooth","Browser":"ブラウザ","Busy":"貸し出し中","Busy devices":"貸し出し中","CPU":"CPU","Camera":"カメラ","Cannot access specified URL":"指定されたURLはアクセスできません","Carrier":"キャリア","Category":"カテゴリー","Charging":"充電中","Chat":"チャット","Clear":"クリア","Clipboard":"クリップボード","Close":"閉じる","Cold":"コールド","Connected":"接続中","Connected successfully.":"接続できました。","Cookies":"クッキー","Cores":"コア数","Customize":"カスタマイズ","D-pad Center":"D-padセンター","D-pad Down":"D-pad下","D-pad Left":"D-pad左","D-pad Right":"D-pad右","D-pad Up":"D-pad上","Dashboard":"ダッシュボード","Data":"データ","Dead":"残量なし","Delete":"削除","Density":"表示密度","Details":"詳細","Developer Settings":"開発者向け設定","Device":"デバイス","Device Photo":"実機写真","Device Settings":"実機設定","Device cannot get kicked from the group":"このデバイスはグループからキックできません。","Device is not present anymore for some reason.":"実機が見えなくなりました。","Device is present but offline.":"デバイスは接続されているが、オフラインになっています。","Device was kicked by automatic timeout.":"デバイスは自動タイムアウトにより切断されました。","Devices":"端末リスト","Disable WiFi":"無線LANを無効にする","Discharging":"放電中","Disconnected":"切断中","Disconnected.
Socket connection was lost, try again reloading the page.":"接続が切れました。
ソケット接続が失われました。もう一度ページを再ロードしてみてください。","Display":"ディスプレー","Domain":"ドメイン","Drop file to upload":"ここにファイルをドロップ","Dummy":"ダミー","Eject":"排出","Enable WiFi":"無線LANを有効にする","Enable notifications":"通知を有効にする","Encrypted":"暗号化","Error":"エラー","Error while getting data":"データ取得中にエラーが発生しました。","Error while reconnecting.":"再接続中にエラーが発生しました。","Error.":"エラー","Error: Forwarding ports failed.":"エラー:ポートフォワーディングが失敗しました。","Ethernet":"イーサーネット","FPS":"FPS","Failed to download file":"ファイルのダウンロードが失敗しした。","Fast Forward":"早送り","Filter":"フィルター","Find Device":"実機を探す","Forward":"フォーワード","Frequency":"クロック","Full":"フル","Get":"取得","Get clipboard contents":"クリップボードの中身を取得する","Go Back":"戻る","Go Forward":"進む","Go to Device List":"端末リストへ","Good":"良い","Hardware":"ハードウェア","Health":"健康状態","Height":"高さ","Help":"ヘルプ","Hide Screen":"画面を非表しない","Home":"ホーム","Host":"ホスト","Hostname":"ホスト名","ICCID":"ICCID","ID":"ID","IMEI":"IMEI","Info":"情報","Inspect Device":"端末の要素検証","Inspecting is currently only supported in WebView":"要素の検証機能は、現在WebViewのみ対応","Inspector":"要素の検証","Installation failed":"インストールが失敗しました","Installing app...":"アプリをインストール中...","Landscape":"横","Language":"言語","Launch Activity":"アクティビティを起動する","Launching activity...":"アクティビティを起動中...","Level":"レベル","Local Settings":"ローカル設定","Location":"場所","Logs":"ログ","Maintenance":"メンテナンス","Manage Apps":"アプリ管理","Manufacturer":"メーカー","Media":"メディア","Memory":"メモリー","Menu":"メニュー","Mobile":"モバイル","Mobile DUN":"モバイルDUN","Mobile High Priority":"モバイル最優先","Mobile MMS":"モバイルMMS","Mobile SUPL":"モバイルSUPL","Model":"機種名","Mute":"音を消す","Name":"名称","Native":"Native","Navigation":"ブラウジング","Network":"ネットワーク","Next":"次","No":"いいえ","No clipboard data":"クリップボードデータはありません","No cookies to show":"クッキーはありません","No device screen":"画面が表示できません","No devices connected":"端末が接続されていません","No photo available":"写真はありません","No screenshots taken":"キャプチャはありません","Not Charging":"充電されていない","Nothing to inspect":"要素の検証対象はありません","Notifications":"通知","Number":"番号","OS":"OS","Offline":"オフライン","Open":"開く","Orientation":"方向","Over Voltage":"過電圧","Overheat":"過熱","PID":"PID","Package":"パッケージ","Password":"パスワード","Path":"パス","Pause":"停止","Phone":"電話番号","Phone ICCID":"携帯ICCID","Phone IMEI":"携帯IMEI","Physical Device":"物理デバイス","Place":"場所","Platform":"プラットホーム","Play":"再生","Play/Pause":"再生/停止","Please enter your Store password":"ストアのパスワードを入力してください","Please enter your Store username":"ストアのユーザ名を入力してください","Port":"ポート","Port forwarding":"ポートフォワーディング","Portrait":"縦","Power":"電源","Power Source":"電力源","Preparing":"準備中","Press Back button":"戻るボタンを押す","Press Home button":"ホームボタンを押す","Press Menu button":"メニューボタンを押す","Previous":"前","Processing...":"処理中...","Product":"型番","Pushing app...":"アプリをプッシュ中...","RAM":"RAM","ROM":"ROM","Ready":"利用可能","Reconnected successfully.":"正常に再接続しました。","Record":"記録する","Reference":"参考","Refresh":"更新","Relaunch":"再起動","Relaunch the browser":"ブラウザを再起動する","Released":"発売日","Reload":"再読込","Remote debug":"リモートデバッグ","Reset":"初期化","Reset Settings":"すべての設定をリセット","Reset all browser settings":"ブラウザの設定をリセットする","Restart Device":"端末を再起動","Retrieving the device screen has timed out.":"実機画面の取得はタイムアウトになりました。","Retry":"再試行","Rewind":"巻き戻す","Roaming":"ローミング","Rotate Left":"左回りに回転","Rotate Right":"右回りに回転","Run":"実行","Run Command":"コマンドを実行","Run JavaScript":"JavaScript注入","Run command":"コマンドを実行する","Run the following on your command line to debug the device from your IDE":"次のコマンドをコマンドラインで実行しますと、お使いのIDEより端末のデバッグができます。","Run the following on your command line:":"次のコマンドをコマンドラインで実行してください。","SD Card Mounted":"SDカード","SDK":"SDK","SIM":"SIM","Save...":"保存する...","Screen":"解像度","Screenshot":"キャプチャ","Screenshots":"キャプチャ","Search":"検索","Secure":"セキュア","Selects Next IME":"入力モードの切り替え","Serial":"シリアル","Set":"設定","Set Cookie":"クッキー設定","Settings":"設定","Shell":"シェル","Show Screen":"画面を表示する","Sign In":"サインイン","Sign Out":"サインアウト","Someone stole your device.":"誰かはデバイスを盗みました。","Special Keys":"特別なキー","Start/Stop Logging":"ログ取得の開始/停止","Status":"ステータス","Stop":"停止","Stop Using":"停止する","Store Account":"ストアアカウント","Sub Type":"サブタイプ","Switch Charset":"文字入力の切り替え","TID":"TID","Tag":"タグ","Take Pageshot (Needs WebView running)":"ページ全体ショットを撮る(現在はWebViewのみ対応)","Take Screenshot":"スクリーンショットを撮る","Temperature":"温度","Text":"テキスト","The device will be unavailable for a moment.":"しばらく端末が利用できなくなります。","This might be caused by a network error, or you might be trying to access a secure view.":"起因として考えられるものは下記の通りです。・ネットワーク・エラー・暗号化されたビュー","Time":"時刻","Toggle Web/Native":"ウェブ/ネイティブを選択","Total devices":"全機種","Try to reconnect":"再接続する","Type":"タイプ","USB":"USB","Unauthorized":"権限外","Unforward":"フォーワード解除","Uninstall":"削除","Unknown":"未知","Unknown reason.":"未知。","Unspecified Failure":"未定義の失敗","Upload From Link":"リンク先よりアップロードする","Upload complete":"アップロードが完了しました","Upload failed":"アップロードが失敗しました","Uploaded file is not valid":"アップロードされたファイル","Uploading...":"アップロード中...","Usable devices":"利用可能","Usb speed":"USB速度","Use":"利用する","User":"ユーザ","Username":"ユーザ名","Using":"利用中","Using Fallback":"フォールバックを使用中","Value":"値","Version":"バージョン","Version Update":"バージョンアップ","Voltage":"電圧","Volume":"音量","Volume Down":"音量↓","Volume Up":"音量↑","Web":"Web","WiFi":"無線LAN","WiFi Settings":"無線LAN設定","WiMAX":"WiMAX","Width":"幅","Wireless":"無線","X DPI":"X DPI","Y DPI":"Y DPI","Yes":"はい","You (or someone else) kicked the device.":"この実機はキックされました。","You are no longer controlling the device.":"この実機のリモート操作ができなくなりました。","{{ device.enhancedName }} current status:":"{{ device.enhancedName }}のステータス:","{{ device.enhancedName }} was disconnected":"{{ device.enhancedName }}への接続が切れました","Remove Accounts":"アカウント削除","Saved to: {{savedTo}}":"保存先: {{savedTo}}","Are you sure you want to kick this device?Currently it is being used by":"このデバイスをキックしますか?\n只今、次のユーザが使用中です:","Connecting...":"接続中...","Error while connecting.":"接続中にエラーが発生しました。","N/A":"適用なし","Reconnecting...":"再接続中...","Show All":"すべてを表示","Forward Ports":"ポートフォワード","Model:":"機種名:","(Absent)":"(オフライン)","Absent":"不在","Present":"存在する","Example: 3000":"例:3000","Local":"ローカル","Maker":"メーカー","Release":"リリース","Target IP / Hostname":"ローカル側のIP / ホスト名","Target Port":"ローカル側のポート","Target host (detect if blank)":"対象ホスト(空のときは自動検知)","(Needs refreshing the page)":"(ページの再読込が必要)","Aa":"あA","Control":"リモート操作","Detected":"検知済み","Failed to get device screen":"端末の画面が取得できません","H":"高","High":"高画質","High Quality":"高画質","Image Quality":"画質","Inspect":"要素の検証","Keyboard Input":"キーボード入力","L":"低","Local storage":"ローカルストレージ","Low":"低画質","Low Quality":"低画質","M":"中","Medium":"中画質","Medium Quality":"中画質","Original":"原寸","Other Keys":"キー・その他","Pageshot":"ページ全体","Release Date":"発売日","Resources":"リソース","Start Using":"利用する","System":"システム","Terminal":"ターミナル","Types text. Only ASCII characters are supported.":"テキストをタイピングします。ASCII文字のみ入力が可能。","USB Speed Benchmark":"USBベンチマーク","{{ started ? 'Stop' : 'Start' }}":"{{ started ? '停止' : '取得' }}","Start":"開始","{{ device.control ? 'Stop' : 'Use' }}":"{{ device.control ? '停止する' : '利用する' }}","Inspect Current Page":"開いているページを検証","Input":"入力"}} \ No newline at end of file +{"ja":{"-":"-","A new version of STF is available":"STFの新しいバージョンがリリースされました","ABI":"ABI","AC":"AC","Account":"アカウント","Action":"アクション","Actions":"アクション","Activity":"アクティビティ","Add":"追加","Admin mode has been disabled.":"管理モードは無効になりました。","Admin mode has been enabled.":"管理モードは有効になりました。","Advanced":"高度機能","Advanced Input":"高度な入力","Airplane Mode":"機内モード","App":"アプリ","App Store":"アプリストア","App Upload":"アプリアップロード","Apps":"アプリ","Are you sure you want to reboot this device?":"この端末を再起動しますか?","Automation":"自動化","Available":"利用可能","Back":"戻る","Battery":"バッテリー","Battery Health":"バッテリー健康状態","Battery Level":"バッテリーレベル","Battery Source":"バッテリー電力源","Battery Status":"バッテリー状態","Battery Temp":"バッテリー温度","Bluetooth":"Bluetooth","Busy":"貸し出し中","Busy devices":"貸し出し中","CPU":"CPU","Camera":"カメラ","Cannot access specified URL":"指定されたURLはアクセスできません","Carrier":"キャリア","Category":"カテゴリー","Charging":"充電中","Chat":"チャット","Clear":"クリア","Clipboard":"クリップボード","Close":"閉じる","Cold":"コールド","Connected":"接続中","Connected successfully.":"接続できました。","Cookies":"クッキー","Cores":"コア数","Customize":"カスタマイズ","D-pad Center":"D-padセンター","D-pad Down":"D-pad下","D-pad Left":"D-pad左","D-pad Right":"D-pad右","D-pad Up":"D-pad上","Dashboard":"ダッシュボード","Data":"データ","Dead":"残量なし","Delete":"削除","Density":"表示密度","Details":"詳細","Developer Settings":"開発者向け設定","Device":"デバイス","Device Photo":"実機写真","Device Settings":"実機設定","Device cannot get kicked from the group":"このデバイスはグループからキックできません。","Device is not present anymore for some reason.":"実機が見えなくなりました。","Device is present but offline.":"デバイスは接続されているが、オフラインになっています。","Device was kicked by automatic timeout.":"デバイスは自動タイムアウトにより切断されました。","Devices":"端末リスト","Disable WiFi":"無線LANを無効にする","Discharging":"放電中","Disconnected":"切断中","Display":"ディスプレー","Domain":"ドメイン","Drop file to upload":"ここにファイルをドロップ","Dummy":"ダミー","Eject":"排出","Enable WiFi":"無線LANを有効にする","Enable notifications":"通知を有効にする","Encrypted":"暗号化","Error while getting data":"データ取得中にエラーが発生しました。","Error while reconnecting.":"再接続中にエラーが発生しました。","Error.":"エラー","Error:":"エラー:","Error: Forwarding ports failed.":"エラー:ポートフォワーディングが失敗しました。","Ethernet":"イーサーネット","FPS":"FPS","Failed to download file":"ファイルのダウンロードが失敗しした。","Fast Forward":"早送り","Filter":"フィルター","Find Device":"実機を探す","Forward":"フォーワード","Frequency":"クロック","Full":"フル","Get":"取得","Get clipboard contents":"クリップボードの中身を取得する","Go Back":"戻る","Go Forward":"進む","Go to Device List":"端末リストへ","Good":"良い","Hardware":"ハードウェア","Health":"健康状態","Height":"高さ","Help":"ヘルプ","Hide Screen":"画面を非表しない","Home":"ホーム","Host":"ホスト","Hostname":"ホスト名","ICCID":"ICCID","ID":"ID","IMEI":"IMEI","Info":"情報","Inspect Device":"端末の要素検証","Inspecting is currently only supported in WebView":"要素の検証機能は、現在WebViewのみ対応","Inspector":"要素の検証","Installation failed":"インストールが失敗しました","Installing app...":"アプリをインストール中...","Landscape":"横","Language":"言語","Launch Activity":"アクティビティを起動する","Launching activity...":"アクティビティを起動中...","Level":"レベル","Local Settings":"ローカル設定","Location":"場所","Logs":"ログ","Maintenance":"メンテナンス","Manage Apps":"アプリ管理","Manufacturer":"メーカー","Media":"メディア","Memory":"メモリー","Menu":"メニュー","Mobile":"モバイル","Mobile DUN":"モバイルDUN","Mobile High Priority":"モバイル最優先","Mobile MMS":"モバイルMMS","Mobile SUPL":"モバイルSUPL","Model":"機種名","Mute":"音を消す","Name":"名称","Native":"Native","Navigation":"ブラウジング","Network":"ネットワーク","New package failed because the current SDK version is older than that required by the package":"この端末のSDKバージョンがパッケージが必要としているSDKのバージョンより古いため、失敗しました。","Next":"次","No":"いいえ","No clipboard data":"クリップボードデータはありません","No cookies to show":"クッキーはありません","No device screen":"画面が表示できません","No devices connected":"端末が接続されていません","No photo available":"写真はありません","No screenshots taken":"キャプチャはありません","Normal Mode":"通常モード","Not Charging":"充電されていない","Nothing to inspect":"要素の検証対象はありません","Notifications":"通知","Number":"番号","OS":"OS","Offline":"オフライン","Open":"開く","Orientation":"方向","Over Voltage":"過電圧","Overheat":"過熱","PID":"PID","Package":"パッケージ","Password":"パスワード","Path":"パス","Pause":"停止","Phone":"電話番号","Phone ICCID":"携帯ICCID","Phone IMEI":"携帯IMEI","Physical Device":"物理デバイス","Place":"場所","Platform":"プラットホーム","Play":"再生","Play/Pause":"再生/停止","Please enter your Store password":"ストアのパスワードを入力してください","Please enter your Store username":"ストアのユーザ名を入力してください","Port":"ポート","Port forwarding":"ポートフォワーディング","Portrait":"縦","Power":"電源","Power Source":"電力源","Preparing":"準備中","Press Back button":"戻るボタンを押す","Press Home button":"ホームボタンを押す","Press Menu button":"メニューボタンを押す","Previous":"前","Processing...":"処理中...","Product":"型番","Pushing app...":"アプリをプッシュ中...","RAM":"RAM","ROM":"ROM","Ready":"利用可能","Reconnected successfully.":"正常に再接続しました。","Record":"記録する","Refresh":"更新","Released":"発売日","Reload":"再読込","Remote debug":"リモートデバッグ","Reset":"初期化","Reset Settings":"すべての設定をリセット","Reset all browser settings":"ブラウザの設定をリセットする","Restart Device":"端末を再起動","Retrieving the device screen has timed out.":"実機画面の取得はタイムアウトになりました。","Retry":"再試行","Rewind":"巻き戻す","Roaming":"ローミング","Rotate Left":"左回りに回転","Rotate Right":"右回りに回転","Run":"実行","Run Command":"コマンドを実行","Run JavaScript":"JavaScript注入","Run command":"コマンドを実行する","Run the following on your command line to debug the device from your Browser":"次のコマンドをコマンドラインで実行しますと、お使いのブラウザより端末のデバッグができます。","Run the following on your command line to debug the device from your IDE":"次のコマンドをコマンドラインで実行しますと、お使いのIDEより端末のデバッグができます。","SD Card Mounted":"SDカード","SDK":"SDK","SIM":"SIM","Save...":"保存する...","Screen":"解像度","Screenshot":"キャプチャ","Screenshots":"キャプチャ","Search":"検索","Secure":"セキュア","Selects Next IME":"入力モードの切り替え","Serial":"シリアル","Set":"設定","Set Cookie":"クッキー設定","Settings":"設定","Shell":"シェル","Show Screen":"画面を表示する","Sign In":"サインイン","Sign Out":"サインアウト","Silent Mode":"マナーモード","Socket connection was lost, try again reloading the page.":"接続が切れました。ページをリロードしてみてください。","Someone stole your device.":"誰かはデバイスを盗みました。","Special Keys":"特別なキー","Start/Stop Logging":"ログ取得の開始/停止","Status":"ステータス","Stop":"停止","Stop Using":"停止する","Store Account":"ストアアカウント","Sub Type":"サブタイプ","Switch Charset":"文字入力の切り替え","TID":"TID","Tag":"タグ","Take Pageshot (Needs WebView running)":"ページ全体ショットを撮る(現在はWebViewのみ対応)","Take Screenshot":"スクリーンショットを撮る","Temperature":"温度","Text":"テキスト","The device will be unavailable for a moment.":"しばらく端末が利用できなくなります。","This might be caused by a network error, or you might be trying to access a secure view.":"起因として考えられるものは下記の通りです。・ネットワーク・エラー・暗号化されたビュー","Time":"時刻","Toggle Web/Native":"ウェブ/ネイティブを選択","Total devices":"全機種","Try to reconnect":"再接続する","Type":"タイプ","USB":"USB","Unauthorized":"権限外","Unforward":"フォーワード解除","Uninstall":"削除","Unknown":"未知","Unknown reason.":"未知。","Unspecified Failure":"未定義の失敗","Upload From Link":"リンク先よりアップロードする","Upload complete":"アップロードが完了しました","Upload failed":"アップロードが失敗しました","Upload unknown error":"アップロード未知エラー","Uploaded file is not valid":"アップロードされたファイル","Uploading...":"アップロード中...","Usable devices":"利用可能","Usb speed":"USB速度","Use":"利用する","User":"ユーザ","Username":"ユーザ名","Using":"利用中","Using Fallback":"フォールバックを使用中","Value":"値","Version":"バージョン","Version Update":"バージョンアップ","Vibrate Mode":"マナーモード(バイブON)","Voltage":"電圧","Volume":"音量","Volume Down":"音量↓","Volume Up":"音量↑","Web":"Web","WiFi":"無線LAN","WiFi Enabled":"無線LAN:ON","WiFi Settings":"無線LAN設定","WiMAX":"WiMAX","Width":"幅","Wireless":"無線","X DPI":"X DPI","Y DPI":"Y DPI","Yes":"はい","You (or someone else) kicked the device.":"この実機はキックされました。","You are no longer controlling the device.":"この実機のリモート操作ができなくなりました。","{{ device.enhancedName }} current status:":"{{ device.enhancedName }}のステータス:","{{ device.enhancedName }} was disconnected":"{{ device.enhancedName }}への接続が切れました","Browser":"ブラウザ","Reference":"参考","Relaunch":"再起動","Relaunch the browser":"ブラウザを再起動する","Run the following on your command line:":"次のコマンドをコマンドラインで実行してください。","Remove Accounts":"アカウント削除","Saved to: {{savedTo}}":"保存先: {{savedTo}}","Are you sure you want to kick this device?Currently it is being used by":"このデバイスをキックしますか?\n只今、次のユーザが使用中です:","Connecting...":"接続中...","Error while connecting.":"接続中にエラーが発生しました。","N/A":"適用なし","Reconnecting...":"再接続中...","Show All":"すべてを表示","Forward Ports":"ポートフォワード","Model:":"機種名:","(Absent)":"(オフライン)","Absent":"不在","Present":"存在する","Example: 3000":"例:3000","Local":"ローカル","Maker":"メーカー","Release":"リリース","Target IP / Hostname":"ローカル側のIP / ホスト名","Target Port":"ローカル側のポート","Target host (detect if blank)":"対象ホスト(空のときは自動検知)","(Needs refreshing the page)":"(ページの再読込が必要)","Aa":"あA","Control":"リモート操作","Detected":"検知済み","Failed to get device screen":"端末の画面が取得できません","H":"高","High":"高画質","High Quality":"高画質","Image Quality":"画質","Inspect":"要素の検証","Keyboard Input":"キーボード入力","L":"低","Local storage":"ローカルストレージ","Low":"低画質","Low Quality":"低画質","M":"中","Medium":"中画質","Medium Quality":"中画質","Original":"原寸","Other Keys":"キー・その他","Pageshot":"ページ全体","Release Date":"発売日","Resources":"リソース","Start Using":"利用する","System":"システム","Terminal":"ターミナル","Types text. Only ASCII characters are supported.":"テキストをタイピングします。ASCII文字のみ入力が可能。","USB Speed Benchmark":"USBベンチマーク","{{ started ? 'Stop' : 'Start' }}":"{{ started ? '停止' : '取得' }}","Start":"開始","{{ device.control ? 'Stop' : 'Use' }}":"{{ device.control ? '停止する' : '利用する' }}","Inspect Current Page":"開いているページを検証","Input":"入力"}} \ No newline at end of file