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