diff --git a/gulpfile.js b/gulpfile.js index 79969ff5..61baddf1 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -110,7 +110,7 @@ gulp.task("webpack:others", function (callback) { gulp.task('translate', ['jade', 'translate:extract', 'translate:compile']) -gulp.task('jade', function () { +gulp.task('jade', function (callback) { return gulp.src([ './res/**/*.jade' , '!./res/bower_components/**' @@ -119,7 +119,7 @@ gulp.task('jade', function () { .pipe(gulp.dest('./tmp/html/')) }) -gulp.task('translate:extract', function () { +gulp.task('translate:extract', function (callback) { return gulp.src([ './tmp/html/**/*.html' , './res/**/*.js' @@ -129,7 +129,7 @@ gulp.task('translate:extract', function () { .pipe(gulp.dest('./res/common/lang/po/')) }) -gulp.task('translate:compile', function () { +gulp.task('translate:compile', function (callback) { return gulp.src('./res/common/lang/po/**/*.po') .pipe(gettext.compile({ format: 'json' diff --git a/res/app/components/stf/common-ui/fallback-image/fallback-image-directive.js b/res/app/components/stf/common-ui/fallback-image/fallback-image-directive.js new file mode 100644 index 00000000..0c0ecf31 --- /dev/null +++ b/res/app/components/stf/common-ui/fallback-image/fallback-image-directive.js @@ -0,0 +1,10 @@ +module.exports = function fallbackImageDirective() { + return { + restrict: 'A', + link: function postLink(scope, element, attrs) { + element.on('error', function() { + angular.element(this).attr('src', attrs.fallbackImage) + }) + } + } +} diff --git a/res/app/components/stf/common-ui/fallback-image/fallback-image-spec.js b/res/app/components/stf/common-ui/fallback-image/fallback-image-spec.js new file mode 100644 index 00000000..4a4f8d2b --- /dev/null +++ b/res/app/components/stf/common-ui/fallback-image/fallback-image-spec.js @@ -0,0 +1,23 @@ +describe('fallbackImage', function () { + + beforeEach(module('stf.fallback-image')); + + var scope, compile; + + beforeEach(inject(function ($rootScope, $compile) { + scope = $rootScope.$new(); + compile = $compile; + })); + + it('should ...', function () { + + /* + To test your directive, you need to create some html that would use your directive, + send that through compile() then compare the results. + + var element = compile('
hi
')(scope); + expect(element.text()).toBe('hello, world'); + */ + + }); +}); \ No newline at end of file diff --git a/res/app/components/stf/common-ui/fallback-image/index.js b/res/app/components/stf/common-ui/fallback-image/index.js new file mode 100644 index 00000000..9c0d9826 --- /dev/null +++ b/res/app/components/stf/common-ui/fallback-image/index.js @@ -0,0 +1,4 @@ +module.exports = angular.module('stf.fallback-image', [ + +]) + .directive('fallbackImage', require('./fallback-image-directive')) diff --git a/res/app/components/stf/common-ui/modals/common/index.js b/res/app/components/stf/common-ui/modals/common/index.js index c4598537..40140b24 100644 --- a/res/app/components/stf/common-ui/modals/common/index.js +++ b/res/app/components/stf/common-ui/modals/common/index.js @@ -1,3 +1,5 @@ +//require('angular-dialog-service/dialogs') +//require('angular-dialog-service/dialogs.css') require('./modals.css') module.exports = angular.module('stf.modals.common', [ diff --git a/res/app/components/stf/common-ui/modals/common/modals.css b/res/app/components/stf/common-ui/modals/common/modals.css index 5e346d61..616db469 100644 --- a/res/app/components/stf/common-ui/modals/common/modals.css +++ b/res/app/components/stf/common-ui/modals/common/modals.css @@ -26,3 +26,8 @@ .stf-modal .dialog-header-confirm h4 { color: #ffffff; } + +.modal-size-xl .modal-dialog { + width: 860px; +} + diff --git a/res/app/components/stf/common-ui/modals/lightbox-image/index.js b/res/app/components/stf/common-ui/modals/lightbox-image/index.js new file mode 100644 index 00000000..4247cd83 --- /dev/null +++ b/res/app/components/stf/common-ui/modals/lightbox-image/index.js @@ -0,0 +1,6 @@ +require('./lightbox-image.css') + +module.exports = angular.module('stf.lightbox-image', [ + require('stf/common-ui/modals/common').name +]) + .factory('LightboxImageService', require('./lightbox-image-service')) diff --git a/res/app/components/stf/common-ui/modals/lightbox-image/lightbox-image-service.js b/res/app/components/stf/common-ui/modals/lightbox-image/lightbox-image-service.js new file mode 100644 index 00000000..dbf40a3c --- /dev/null +++ b/res/app/components/stf/common-ui/modals/lightbox-image/lightbox-image-service.js @@ -0,0 +1,38 @@ +module.exports = function ServiceFactory($modal) { + var service = {} + + var ModalInstanceCtrl = function ($scope, $modalInstance, title, imageUrl) { + $scope.ok = function () { + $modalInstance.close(true) + } + + $scope.title = title + $scope.imageUrl = imageUrl + + $scope.cancel = function () { + $modalInstance.dismiss('cancel') + } + } + + service.open = function (title, imageUrl) { + var modalInstance = $modal.open({ + template: require('./lightbox-image.jade'), + controller: ModalInstanceCtrl, + windowClass: 'modal-size-xl', // TODO: Make width dynamic adjusting + resolve: { + title: function() { + return title + }, + imageUrl: function () { + return imageUrl + } + } + }) + + modalInstance.result.then(function () { + }, function () { + }) + } + + return service +} diff --git a/res/app/components/stf/common-ui/modals/lightbox-image/lightbox-image-spec.js b/res/app/components/stf/common-ui/modals/lightbox-image/lightbox-image-spec.js new file mode 100644 index 00000000..5a14afb3 --- /dev/null +++ b/res/app/components/stf/common-ui/modals/lightbox-image/lightbox-image-spec.js @@ -0,0 +1,11 @@ +describe('VersionUpdateService', function() { + + beforeEach(module('stf.version-update')); + + it('should ...', inject(function(VersionUpdateService) { + + //expect(FatalMessageService.doSomething()).toEqual('something'); + + })); + +}) diff --git a/res/app/components/stf/common-ui/modals/lightbox-image/lightbox-image.css b/res/app/components/stf/common-ui/modals/lightbox-image/lightbox-image.css new file mode 100644 index 00000000..65d0938f --- /dev/null +++ b/res/app/components/stf/common-ui/modals/lightbox-image/lightbox-image.css @@ -0,0 +1,5 @@ +.stf-lightbox-image .modal-body { + text-align: center; + background: white; +} + diff --git a/res/app/components/stf/common-ui/modals/lightbox-image/lightbox-image.jade b/res/app/components/stf/common-ui/modals/lightbox-image/lightbox-image.jade new file mode 100644 index 00000000..e5f89809 --- /dev/null +++ b/res/app/components/stf/common-ui/modals/lightbox-image/lightbox-image.jade @@ -0,0 +1,10 @@ +.stf-lightbox-image.stf-modal + .modal-header + button(type='button', ng-click='cancel()').close × + h4.modal-title + i.fa.fa-mobile.fa-fw + span {{ title }} + .modal-body + img(ng-if='imageUrl', ng-src='{{imageUrl}}') + nothing-to-show(message='{{"No photo available"|translate}}', icon='fa-picture-o', ng-if='!imageUrl') + // TODO: replace !imageUrl here with a image-not-available='imageIsNotPresent = true' directive diff --git a/res/app/control-panes/info/index.js b/res/app/control-panes/info/index.js index eca4fd5b..7f505cde 100644 --- a/res/app/control-panes/info/index.js +++ b/res/app/control-panes/info/index.js @@ -1,7 +1,8 @@ require('./info.css') module.exports = angular.module('stf.info', [ - require('stf/angular-packery').name + require('stf/angular-packery').name, + require('stf/common-ui/modals/lightbox-image').name ]) .run(["$templateCache", function ($templateCache) { $templateCache.put('control-panes/info/info.jade', diff --git a/res/app/control-panes/info/info-controller.js b/res/app/control-panes/info/info-controller.js index 5bdd1121..cc9eb996 100644 --- a/res/app/control-panes/info/info-controller.js +++ b/res/app/control-panes/info/info-controller.js @@ -1,3 +1,7 @@ -module.exports = function InfoCtrl($scope) { - +module.exports = function InfoCtrl($scope, LightboxImageService) { + $scope.openDevicePhoto = function (device) { + var title = device.name + var enhancedPhoto800 = '/static/devices/photo/x800/' + device.image + LightboxImageService.open(title, enhancedPhoto800) + } } diff --git a/res/app/control-panes/info/info.jade b/res/app/control-panes/info/info.jade index 23928829..6acf44d6 100644 --- a/res/app/control-panes/info/info.jade +++ b/res/app/control-panes/info/info.jade @@ -1,21 +1,28 @@ .row.stf-info(ng-controller='InfoCtrl', -angular-packery='{draggable: true, draggableHandle: ".heading i"}') + angular-packery='{draggable: true, draggableHandle: ".heading i"}') .col-md-4-x.packery-item .widget-container.fluid-height .heading i.fa.fa-location-arrow - span(translate) Location + span(translate) Physical Device .pull-right button(ng-click='control.identify()').btn.btn-xs.btn-primary-outline i.fa.fa-info - span(translate) Find Device + span(translate) Find Device + .widget-content.padded-small table.table.table-condensed.table-hover.table-infocard tbody tr td(translate) Place td {{device.provider.name}} + tr + td + td + button(ng-click='openDevicePhoto(device)').btn.btn-xs.btn-primary-outline + i.fa.fa-picture-o + span(translate) Device Photo .col-md-4-x.packery-item .widget-container.fluid-height diff --git a/res/app/settings/local/index.js b/res/app/settings/local/index.js index 4d2d3392..a0f83ea5 100644 --- a/res/app/settings/local/index.js +++ b/res/app/settings/local/index.js @@ -1,11 +1,9 @@ require('angular-bootstrap') -require('angular-dialog-service/dialogs') -require('angular-dialog-service/dialogs.css') module.exports = angular.module('ui-local-settings', [ require('stf/settings').name, - 'ui.bootstrap', - //'dialogs' + require('stf/common-ui/modals/common').name, + 'ui.bootstrap' ]) .run(["$templateCache", function ($templateCache) { $templateCache.put( diff --git a/res/common/lang/po/stf.ja.po b/res/common/lang/po/stf.ja.po index c0eac9bb..a72f576a 100644 --- a/res/common/lang/po/stf.ja.po +++ b/res/common/lang/po/stf.ja.po @@ -17,6 +17,10 @@ msgstr "" msgid "-" msgstr "-" +#: /Users/a12907/STF/stf/tmp/html/app/components/stf/common-ui/modals/version-update/version-update.html +msgid "A new version of STF is available" +msgstr "STFの新しいバージョンがリリースされました" + #: /Users/a12907/STF/stf/tmp/html/app/device-list/device-list.html #: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html msgid "ABI" @@ -250,11 +254,19 @@ msgstr "開発者向け設定" msgid "Device" msgstr "デバイス" +#: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html +msgid "Device Photo" +msgstr "実機写真" + #: /Users/a12907/STF/stf/res/build/bundle.js #: /Users/a12907/STF/stf/res/app/device-list/device-list-controller.js msgid "Device cannot get kicked from the group" msgstr "このデバイスはグループからキックできません。" +#: /Users/a12907/STF/stf/tmp/html/app/components/stf/common-ui/modals/fatal-message/fatal-message.html +msgid "Device was disconnected" +msgstr "デバイスへの接続が切れました" + #: /Users/a12907/STF/stf/tmp/html/app/device-list/device-list.html msgid "Devices" msgstr "端末リスト" @@ -384,6 +396,10 @@ msgstr "戻る" msgid "Go Forward" msgstr "進む" +#: /Users/a12907/STF/stf/tmp/html/app/components/stf/common-ui/modals/fatal-message/fatal-message.html +msgid "Go to Device List" +msgstr "端末リストへ" + #: /Users/a12907/STF/stf/res/build/bundle.js #: /Users/a12907/STF/stf/res/app/components/stf/device/device-info-filter/index.js msgid "Good" @@ -484,7 +500,6 @@ msgid "Local Settings" msgstr "ローカル設定" #: /Users/a12907/STF/stf/tmp/html/app/device-list/device-list.html -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html msgid "Location" msgstr "場所" @@ -596,6 +611,10 @@ msgstr "画面が表示できません" msgid "No devices connected" msgstr "端末が接続されていません" +#: /Users/a12907/STF/stf/tmp/html/app/components/stf/common-ui/modals/lightbox-image/lightbox-image.html +msgid "No photo available" +msgstr "写真はありません" + #: /Users/a12907/STF/stf/tmp/html/app/control-panes/screenshots/screenshots.html msgid "No screenshots taken" msgstr "キャプチャはありません" @@ -673,6 +692,10 @@ msgstr "携帯ICCID" msgid "Phone IMEI" msgstr "携帯IMEI" +#: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html +msgid "Physical Device" +msgstr "物理デバイス" + #: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html msgid "Place" msgstr "場所" @@ -779,6 +802,7 @@ msgid "Released" msgstr "発売日" #: /Users/a12907/STF/stf/tmp/html/app/control-panes/dashboard/navigation/navigation.html +#: /Users/a12907/STF/stf/tmp/html/app/components/stf/common-ui/modals/version-update/version-update.html msgid "Reload" msgstr "再読込" @@ -962,6 +986,10 @@ msgstr "" msgid "Time" msgstr "時刻" +#: /Users/a12907/STF/stf/tmp/html/app/components/stf/common-ui/modals/fatal-message/fatal-message.html +msgid "Try to reconnect" +msgstr "再接続する" + #: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html msgid "Type" msgstr "タイプ" @@ -1039,6 +1067,10 @@ msgstr "値" msgid "Version" msgstr "バージョン" +#: /Users/a12907/STF/stf/tmp/html/app/components/stf/common-ui/modals/version-update/version-update.html +msgid "Version Update" +msgstr "バージョンアップ" + #: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html msgid "Voltage" msgstr "電圧" @@ -1095,27 +1127,13 @@ msgstr "Y DPI" msgid "Yes" msgstr "はい" -#~ msgid "A new version of STF is available" -#~ msgstr "STFの新しいバージョンがリリースされました" - -#~ msgid "Device was disconnected" -#~ msgstr "デバイスへの接続が切れました" - -#~ msgid "Go to Device List" -#~ msgstr "端末リストへ" +#: /Users/a12907/STF/stf/tmp/html/app/components/stf/common-ui/modals/fatal-message/fatal-message.html +msgid "You are no longer controlling the device." +msgstr "この実機のリモート操作ができなくなりました。" #~ msgid "Model:" #~ msgstr "機種名:" -#~ msgid "Try to reconnect" -#~ msgstr "再接続する" - -#~ msgid "Version Update" -#~ msgstr "バージョンアップ" - -#~ msgid "You are no longer controlling the device." -#~ msgstr "この実機のリモート操作ができなくなりました。" - #~ msgid "(Absent)" #~ msgstr "(オフライン)" @@ -1128,9 +1146,6 @@ msgstr "はい" #~ msgid "Device is not in use anymore" #~ msgstr "実機が使われなくなりました" -#~ msgid "Device Port" -#~ msgstr "端末側のポート" - #~ msgid "Example: 3000" #~ msgstr "例:3000" diff --git a/res/common/lang/po/stf.pot b/res/common/lang/po/stf.pot index 4b70cb43..9a169401 100644 --- a/res/common/lang/po/stf.pot +++ b/res/common/lang/po/stf.pot @@ -249,6 +249,10 @@ msgstr "" msgid "Device" msgstr "" +#: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html +msgid "Device Photo" +msgstr "" + #: /Users/a12907/STF/stf/res/build/bundle.js #: /Users/a12907/STF/stf/res/app/device-list/device-list-controller.js msgid "Device cannot get kicked from the group" @@ -488,7 +492,6 @@ msgid "Local Settings" msgstr "" #: /Users/a12907/STF/stf/tmp/html/app/device-list/device-list.html -#: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html msgid "Location" msgstr "" @@ -600,6 +603,10 @@ msgstr "" msgid "No devices connected" msgstr "" +#: /Users/a12907/STF/stf/tmp/html/app/components/stf/common-ui/modals/lightbox-image/lightbox-image.html +msgid "No photo available" +msgstr "" + #: /Users/a12907/STF/stf/tmp/html/app/control-panes/screenshots/screenshots.html msgid "No screenshots taken" msgstr "" @@ -677,6 +684,10 @@ msgstr "" msgid "Phone IMEI" msgstr "" +#: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html +msgid "Physical Device" +msgstr "" + #: /Users/a12907/STF/stf/tmp/html/app/control-panes/info/info.html msgid "Place" msgstr "" diff --git a/res/common/lang/translations/stf.ja.json b/res/common/lang/translations/stf.ja.json index 501d1a9e..4da5b072 100644 --- a/res/common/lang/translations/stf.ja.json +++ b/res/common/lang/translations/stf.ja.json @@ -1 +1 @@ -{"ja":{"-":"-","ABI":"ABI","AC":"AC","Action":"アクション","Activity":"アクティビティ","Add":"追加","Advanced":"高度機能","Advanced Input":"高度な入力","Airplane Mode":"機内モード","App":"アプリ","App Store":"アプリストア","App Upload":"アプリアップロード","Apps":"アプリ","Are you sure you want to kick this device?Currently it is being used by":"このデバイスをキックしますか?\\n只今、次のユーザが使用中です:","Available":"利用可能","Back":"戻る","Battery":"バッテリー","Battery Health":"バッテリー健康状態","Battery Level":"バッテリーレベル","Battery Source":"バッテリー電力源","Battery Status":"バッテリー状態","Battery Temperature":"バッテリー温度","Bluetooth":"Bluetooth","Browser":"ブラウザ","Busy":"貸し出し中","CPU":"CPU","Camera":"カメラ","Cannot access specified URL":"指定されたURLはアクセスできません","Carrier":"キャリア","Category":"カテゴリー","Charging":"充電中","Clear":"クリア","Clipboard":"クリップボード","Close":"閉じる","Cold":"コールド","Connected":"接続中","Connected successfully.":"接続できました。","Connecting...":"接続中...","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 cannot get kicked from the group":"このデバイスはグループからキックできません。","Devices":"端末リスト","Discharging":"放電中","Disconnected":"切断中","Disconnected.
Socket connection was lost, try again reloading the page.":"接続が切れました。
ソケット接続が失われました。もう一度ページを再ロードしてみてください。","Display":"ディスプレー","Domain":"ドメイン","Drop file to upload":"ここにファイルをドロップ","Dummy":"ダミー","Eject":"排出","Enable notifications":"通知を有効にする","Encrypted":"暗号化","Error":"エラー","Error while connecting.":"接続中にエラーが発生しました。","Error while getting data":"データ取得中にエラーが発生しました。","Error while reconnecting.":"再接続中にエラーが発生しました。","Error.":"エラー","Ethernet":"イーサーネット","FPS":"FPS","Failed to download file":"ファイルのダウンロードが失敗しした。","Fast Forward":"早送り","Filter":"フィルター","Find Device":"実機を探す","Forward Ports":"ポートフォワード","Frequency":"クロック","Full":"フル","Get":"取得","Get clipboard contents":"クリップボードの中身を取得する","Go Back":"戻る","Go Forward":"進む","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":"ログ","Manage Apps":"アプリ管理","Manufacturer":"メーカー","Media":"メディア","Memory":"メモリー","Menu":"メニュー","Mobile":"モバイル","Mobile DUN":"モバイルDUN","Mobile High Priority":"モバイル最優先","Mobile MMS":"モバイルMMS","Mobile SUPL":"モバイルSUPL","Model":"機種名","Mute":"音を消す","N/A":"適用なし","Name":"名称","Native":"Native","Navigation":"ブラウジング","Network":"ネットワーク","Next":"次","No":"いいえ","No clipboard data":"クリップボードデータはありません","No cookies to show":"クッキーはありません","No device screen":"画面が表示できません","No devices connected":"端末が接続されていません","No screenshots taken":"キャプチャはありません","Not Charging":"充電されていない","Nothing to inspect":"要素の検証対象はありません","Notifications":"通知","Number":"番号","OS":"OS","Offline":"オフライン","Open":"開く","Orientation":"方向","Over Voltage":"過電圧","Overheat":"過熱","PID":"PID","Package":"パッケージ","Path":"パス","Pause":"停止","Phone":"電話番号","Phone ICCID":"携帯ICCID","Phone IMEI":"携帯IMEI","Place":"場所","Platform":"プラットホーム","Play":"再生","Play/Pause":"再生/停止","Port":"ポート","Port forwarding":"ポートフォワーディング","Portrait":"縦","Power":"電源","Power Source":"電力源","Preparing":"準備中","Previous":"前","Processing...":"処理中...","Product":"型番","Pushing app...":"アプリをプッシュ中...","RAM":"RAM","ROM":"ROM","Ready":"利用可能","Reconnected successfully.":"正常に再接続しました。","Reconnecting...":"再接続中...","Record":"記録する","Reference":"参考","Refresh":"更新","Relaunch":"再起動","Relaunch the browser":"ブラウザを再起動する","Released":"発売日","Reload":"再読込","Reset":"初期化","Reset Settings":"すべての設定をリセット","Reset all browser settings":"ブラウザの設定をリセットする","Retrieving the device screen has timed out.":"実機画面の取得はタイムアウトになりました。","Retry":"再試行","Rewind":"巻き戻す","Roaming":"ローミング","Run":"実行","Run Command":"コマンドを実行","Run JavaScript":"JavaScript注入","Run command":"コマンドを実行する","SDK":"SDK","SIM":"SIM","Save...":"保存する...","Saved to: {{savedTo}}":"保存先: {{savedTo}}","Screen":"解像度","Screenshot":"キャプチャ","Screenshots":"キャプチャ","Search":"検索","Secure":"セキュア","Serial":"シリアル","Set":"設定","Set Cookie":"クッキー設定","Settings":"設定","Shell":"シェル","Show All":"すべてを表示","Show Screen":"画面を表示する","Special Keys":"特別なキー","Start/Stop Logging":"ログ取得の開始/停止","Status":"ステータス","Stop":"停止","Stop Using":"停止する","Sub Type":"サブタイプ","Switch Charset":"文字入力の切り替え","TID":"TID","Tag":"タグ","Take Pageshot (Needs WebView running)":"ページ全体ショットを撮る(現在はWebViewのみ対応)","Take Screenshot":"スクリーンショットを撮る","Temperature":"温度","Text":"テキスト","This might be caused by a network error, or you might be trying to access a secure view.":"起因として考えられるものは下記の通りです。・ネットワーク・エラー・暗号化されたビュー","Time":"時刻","Type":"タイプ","USB":"USB","Unauthorized":"権限外","Unforward Ports":"ポートフォワード解除","Uninstall":"削除","Unknown":"未知","Unspecified Failure":"未定義の失敗","Upload From Link":"リンク先よりアップロードする","Upload complete":"アップロードが完了しました","Upload failed":"アップロードが失敗しました","Uploaded file is not valid":"アップロードされたファイル","Uploading...":"アップロード中...","Usb speed":"USB速度","Use":"利用する","User":"ユーザ","Using Fallback":"フォールバックを使用中","Value":"値","Version":"バージョン","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":"はい","A new version of STF is available":"STFの新しいバージョンがリリースされました","Device was disconnected":"デバイスへの接続が切れました","Go to Device List":"端末リストへ","Model:":"機種名:","Try to reconnect":"再接続する","Version Update":"バージョンアップ","You are no longer controlling the device.":"この実機のリモート操作ができなくなりました。","(Absent)":"(オフライン)","Absent":"不在","Present":"存在する","Device is not in use anymore":"実機が使われなくなりました","Device Port":"端末側のポート","Example: 3000":"例:3000","Local":"ローカル","Maker":"メーカー","Release":"リリース","Target IP / Hostname":"ローカル側のIP / ホスト名","Target Port":"ローカル側のポート","Target host (detect if blank)":"対象ホスト(空のときは自動検知)","Using":"利用中","(Needs refreshing the page)":"(ページの再読込が必要)","Aa":"あA","Control":"リモート操作","Detected":"検知済み","Failed to get device screen":"端末の画面が取得できません","H":"高","High":"高画質","High Quality":"高画質","Image Quality":"画質","Inspect":"要素の検証","Just control device":"端末を操作のみする","Keyboard Input":"キーボード入力","L":"低","Local storage":"ローカルストレージ","Low":"低画質","Low Quality":"低画質","M":"中","Medium":"中画質","Medium Quality":"中画質","Original":"原寸","Other Keys":"キー・その他","Pageshot":"ページ全体","Power Button":"電源ボタン","Release Date":"発売日","Resources":"リソース","Start Using":"利用する","System":"システム","Terminal":"ターミナル","Types text. Only ASCII characters are supported.":"テキストをタイピングします。ASCII文字のみ入力が可能。","USB Speed Benchmark":"USBベンチマーク","View device":"デバイスを表示する","{{ 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","Action":"アクション","Activity":"アクティビティ","Add":"追加","Advanced":"高度機能","Advanced Input":"高度な入力","Airplane Mode":"機内モード","App":"アプリ","App Store":"アプリストア","App Upload":"アプリアップロード","Apps":"アプリ","Are you sure you want to kick this device?Currently it is being used by":"このデバイスをキックしますか?\\n只今、次のユーザが使用中です:","Available":"利用可能","Back":"戻る","Battery":"バッテリー","Battery Health":"バッテリー健康状態","Battery Level":"バッテリーレベル","Battery Source":"バッテリー電力源","Battery Status":"バッテリー状態","Battery Temperature":"バッテリー温度","Bluetooth":"Bluetooth","Browser":"ブラウザ","Busy":"貸し出し中","CPU":"CPU","Camera":"カメラ","Cannot access specified URL":"指定されたURLはアクセスできません","Carrier":"キャリア","Category":"カテゴリー","Charging":"充電中","Clear":"クリア","Clipboard":"クリップボード","Close":"閉じる","Cold":"コールド","Connected":"接続中","Connected successfully.":"接続できました。","Connecting...":"接続中...","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 cannot get kicked from the group":"このデバイスはグループからキックできません。","Device was disconnected":"デバイスへの接続が切れました","Devices":"端末リスト","Discharging":"放電中","Disconnected":"切断中","Disconnected.
Socket connection was lost, try again reloading the page.":"接続が切れました。
ソケット接続が失われました。もう一度ページを再ロードしてみてください。","Display":"ディスプレー","Domain":"ドメイン","Drop file to upload":"ここにファイルをドロップ","Dummy":"ダミー","Eject":"排出","Enable notifications":"通知を有効にする","Encrypted":"暗号化","Error":"エラー","Error while connecting.":"接続中にエラーが発生しました。","Error while getting data":"データ取得中にエラーが発生しました。","Error while reconnecting.":"再接続中にエラーが発生しました。","Error.":"エラー","Ethernet":"イーサーネット","FPS":"FPS","Failed to download file":"ファイルのダウンロードが失敗しした。","Fast Forward":"早送り","Filter":"フィルター","Find Device":"実機を探す","Forward Ports":"ポートフォワード","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":"ログ","Manage Apps":"アプリ管理","Manufacturer":"メーカー","Media":"メディア","Memory":"メモリー","Menu":"メニュー","Mobile":"モバイル","Mobile DUN":"モバイルDUN","Mobile High Priority":"モバイル最優先","Mobile MMS":"モバイルMMS","Mobile SUPL":"モバイルSUPL","Model":"機種名","Mute":"音を消す","N/A":"適用なし","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":"パッケージ","Path":"パス","Pause":"停止","Phone":"電話番号","Phone ICCID":"携帯ICCID","Phone IMEI":"携帯IMEI","Physical Device":"物理デバイス","Place":"場所","Platform":"プラットホーム","Play":"再生","Play/Pause":"再生/停止","Port":"ポート","Port forwarding":"ポートフォワーディング","Portrait":"縦","Power":"電源","Power Source":"電力源","Preparing":"準備中","Previous":"前","Processing...":"処理中...","Product":"型番","Pushing app...":"アプリをプッシュ中...","RAM":"RAM","ROM":"ROM","Ready":"利用可能","Reconnected successfully.":"正常に再接続しました。","Reconnecting...":"再接続中...","Record":"記録する","Reference":"参考","Refresh":"更新","Relaunch":"再起動","Relaunch the browser":"ブラウザを再起動する","Released":"発売日","Reload":"再読込","Reset":"初期化","Reset Settings":"すべての設定をリセット","Reset all browser settings":"ブラウザの設定をリセットする","Retrieving the device screen has timed out.":"実機画面の取得はタイムアウトになりました。","Retry":"再試行","Rewind":"巻き戻す","Roaming":"ローミング","Run":"実行","Run Command":"コマンドを実行","Run JavaScript":"JavaScript注入","Run command":"コマンドを実行する","SDK":"SDK","SIM":"SIM","Save...":"保存する...","Saved to: {{savedTo}}":"保存先: {{savedTo}}","Screen":"解像度","Screenshot":"キャプチャ","Screenshots":"キャプチャ","Search":"検索","Secure":"セキュア","Serial":"シリアル","Set":"設定","Set Cookie":"クッキー設定","Settings":"設定","Shell":"シェル","Show All":"すべてを表示","Show Screen":"画面を表示する","Special Keys":"特別なキー","Start/Stop Logging":"ログ取得の開始/停止","Status":"ステータス","Stop":"停止","Stop Using":"停止する","Sub Type":"サブタイプ","Switch Charset":"文字入力の切り替え","TID":"TID","Tag":"タグ","Take Pageshot (Needs WebView running)":"ページ全体ショットを撮る(現在はWebViewのみ対応)","Take Screenshot":"スクリーンショットを撮る","Temperature":"温度","Text":"テキスト","This might be caused by a network error, or you might be trying to access a secure view.":"起因として考えられるものは下記の通りです。・ネットワーク・エラー・暗号化されたビュー","Time":"時刻","Try to reconnect":"再接続する","Type":"タイプ","USB":"USB","Unauthorized":"権限外","Unforward Ports":"ポートフォワード解除","Uninstall":"削除","Unknown":"未知","Unspecified Failure":"未定義の失敗","Upload From Link":"リンク先よりアップロードする","Upload complete":"アップロードが完了しました","Upload failed":"アップロードが失敗しました","Uploaded file is not valid":"アップロードされたファイル","Uploading...":"アップロード中...","Usb speed":"USB速度","Use":"利用する","User":"ユーザ","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 are no longer controlling the device.":"この実機のリモート操作ができなくなりました。","Model:":"機種名:","(Absent)":"(オフライン)","Absent":"不在","Present":"存在する","Device is not in use anymore":"実機が使われなくなりました","Example: 3000":"例:3000","Local":"ローカル","Maker":"メーカー","Release":"リリース","Target IP / Hostname":"ローカル側のIP / ホスト名","Target Port":"ローカル側のポート","Target host (detect if blank)":"対象ホスト(空のときは自動検知)","Using":"利用中","(Needs refreshing the page)":"(ページの再読込が必要)","Aa":"あA","Control":"リモート操作","Detected":"検知済み","Failed to get device screen":"端末の画面が取得できません","H":"高","High":"高画質","High Quality":"高画質","Image Quality":"画質","Inspect":"要素の検証","Just control device":"端末を操作のみする","Keyboard Input":"キーボード入力","L":"低","Local storage":"ローカルストレージ","Low":"低画質","Low Quality":"低画質","M":"中","Medium":"中画質","Medium Quality":"中画質","Original":"原寸","Other Keys":"キー・その他","Pageshot":"ページ全体","Power Button":"電源ボタン","Release Date":"発売日","Resources":"リソース","Start Using":"利用する","System":"システム","Terminal":"ターミナル","Types text. Only ASCII characters are supported.":"テキストをタイピングします。ASCII文字のみ入力が可能。","USB Speed Benchmark":"USBベンチマーク","View device":"デバイスを表示する","{{ started ? 'Stop' : 'Start' }}":"{{ started ? '停止' : '取得' }}","Start":"開始","{{ device.control ? 'Stop' : 'Use' }}":"{{ device.control ? '停止する' : '利用する' }}","Inspect Current Page":"開いているページを検証","Input":"入力"}} \ No newline at end of file