diff --git a/res/app/components/stf/common-ui/modals/fatal-message/fatal-message.jade b/res/app/components/stf/common-ui/modals/fatal-message/fatal-message.jade
index 83f17d34..31a6f8d5 100644
--- a/res/app/components/stf/common-ui/modals/fatal-message/fatal-message.jade
+++ b/res/app/components/stf/common-ui/modals/fatal-message/fatal-message.jade
@@ -3,8 +3,9 @@
button(type='button', ng-click='cancel()').close ×
h4.modal-title.text-danger
i.fa.fa-warning
- span(translate) Device was disconnected
- .modal-body.text-danger(translate) Device is not in use anymore
+ .button-spacer
+ span(translate) Device was disconnected
+ .modal-body.text-danger(translate) You are no longer controlling the device.
.modal-footer
button.btn.btn-primary(type='button', ng-click='ok()')
i.fa.fa-refresh
diff --git a/res/app/components/stf/common-ui/modals/version-update/version-update-service.js b/res/app/components/stf/common-ui/modals/version-update/version-update-service.js
index e09c4bbb..721f6b84 100644
--- a/res/app/components/stf/common-ui/modals/version-update/version-update-service.js
+++ b/res/app/components/stf/common-ui/modals/version-update/version-update-service.js
@@ -1,4 +1,4 @@
-module.exports = function FatalMessageServiceFactory($modal, $location) {
+module.exports = function ServiceFactory($modal, $location) {
var service = {}
var ModalInstanceCtrl = function ($scope, $modalInstance) {
diff --git a/res/app/components/stf/common-ui/modals/version-update/version-update-spec.js b/res/app/components/stf/common-ui/modals/version-update/version-update-spec.js
index 4b20e0a6..5a14afb3 100644
--- a/res/app/components/stf/common-ui/modals/version-update/version-update-spec.js
+++ b/res/app/components/stf/common-ui/modals/version-update/version-update-spec.js
@@ -2,7 +2,7 @@ describe('VersionUpdateService', function() {
beforeEach(module('stf.version-update'));
- it('should ...', inject(function(FatalMessageService) {
+ it('should ...', inject(function(VersionUpdateService) {
//expect(FatalMessageService.doSomething()).toEqual('something');
diff --git a/res/app/components/stf/device/device-service.js b/res/app/components/stf/device/device-service.js
index 4a30dc06..90f01294 100644
--- a/res/app/components/stf/device/device-service.js
+++ b/res/app/components/stf/device/device-service.js
@@ -99,16 +99,16 @@ module.exports = function DeviceServiceFactory($http, socket) {
// For convenience, add the sorting priority to each state
function getStateSorting(state) {
return {
- 'using': 1,
- 'available': 2,
- 'ready': 3,
- 'present': 4,
- 'busy': 5,
- 'absent': 6,
- 'preparing': 7,
- 'unauthorized': 8,
- 'offline': 9
- }[state] || 10
+ 'using': 10,
+ 'available': 9,
+ 'ready': 8,
+ 'present': 7,
+ 'busy': 6,
+ 'absent': 5,
+ 'preparing': 4,
+ 'unauthorized': 3,
+ 'offline': 2
+ }[state] || 1
}
function get(data) {
diff --git a/res/app/components/stf/user/group/group-service.js b/res/app/components/stf/user/group/group-service.js
index de2659d5..c30c3b68 100644
--- a/res/app/components/stf/user/group/group-service.js
+++ b/res/app/components/stf/user/group/group-service.js
@@ -1,3 +1,5 @@
+var Promise = require('bluebird')
+
module.exports = function GroupServiceFactory(
socket
, TransactionService
@@ -6,6 +8,10 @@ module.exports = function GroupServiceFactory(
}
groupService.invite = function (device) {
+ if (!device.usable) {
+ return Promise.reject(new Error('Device is not usable'))
+ }
+
var tx = TransactionService.create(device)
socket.emit('group.invite', device.channel, tx.channel, {
requirements: {
@@ -24,6 +30,10 @@ module.exports = function GroupServiceFactory(
}
groupService.kick = function (device) {
+ if (!device.usable) {
+ return Promise.reject(new Error('Device is not usable'))
+ }
+
var tx = TransactionService.create(device)
socket.emit('group.kick', device.channel, tx.channel, {
requirements: {
diff --git a/res/app/control-panes/control-panes-controller.js b/res/app/control-panes/control-panes-controller.js
index 299c9a9f..8d9aacf0 100644
--- a/res/app/control-panes/control-panes-controller.js
+++ b/res/app/control-panes/control-panes-controller.js
@@ -1,15 +1,4 @@
-module.exports = function ControlPanesController(
- $scope
-, $http
-, gettext
-, $routeParams
-, $location
-, DeviceService
-, GroupService
-, ControlService
-, StorageService
-, FatalMessageService
-) {
+module.exports = function ControlPanesController($scope, $http, gettext, $routeParams, $timeout, $location, DeviceService, GroupService, ControlService, StorageService, FatalMessageService) {
var sharedTabs = [
{
title: gettext('Screenshots'),
@@ -83,53 +72,46 @@ module.exports = function ControlPanesController(
$scope.installFileForced = function ($files) {
$scope.$apply(function () {
$scope.upload = {
- progress: 0
- , lastData: 'uploading'
+ progress: 0, lastData: 'uploading'
}
})
return StorageService.storeFile('apk', $files, {
- filter: function(file) {
- return /\.apk$/i.test(file.name)
- }
- })
- .progressed(function(e) {
+ filter: function (file) {
+ return /\.apk$/i.test(file.name)
+ }
+ })
+ .progressed(function (e) {
if (e.lengthComputable) {
$scope.$apply(function () {
$scope.upload = {
- progress: e.loaded / e.total * 100
- , lastData: 'uploading'
+ progress: e.loaded / e.total * 100, lastData: 'uploading'
}
})
}
})
- .then(function(res) {
+ .then(function (res) {
$scope.$apply(function () {
$scope.upload = {
- progress: 100
- , lastData: 'processing'
+ progress: 100, lastData: 'processing'
}
})
var href = res.data.resources.file0.href
return $http.get(href + '/manifest')
- .then(function(res) {
+ .then(function (res) {
$scope.upload = {
- progress: 100
- , lastData: 'success'
- , settled: true
+ progress: 100, lastData: 'success', settled: true
}
if (res.data.success) {
return $scope.installForced({
- href: href
- , launch: true
- , manifest: res.data.manifest
+ href: href, launch: true, manifest: res.data.manifest
})
}
})
})
- .catch(function(err) {
+ .catch(function (err) {
$scope.$apply(function () {
if (err.code === 'no_input_files') {
$scope.upload = null
@@ -137,10 +119,7 @@ module.exports = function ControlPanesController(
else {
console.log('Upload error', err)
$scope.upload = {
- progress: 100
- , lastData: 'fail'
- , settled: true
- , error: err.message
+ progress: 100, lastData: 'fail', settled: true, error: err.message
}
}
})
@@ -175,17 +154,22 @@ module.exports = function ControlPanesController(
return device
})
.catch(function () {
- $location.path('/')
+ $timeout(function () {
+ $location.path('/')
+ })
})
+ $scope.$watch('device')
+
$scope.$watch('device.state', function (newValue, oldValue) {
+
if (newValue !== oldValue) {
if (oldValue === 'using') {
FatalMessageService.open(angular.copy($scope.device))
- } else {
-
}
+ } else if (typeof newValue === 'undefined' && typeof oldValue === 'undefined') {
+ //FatalMessageService.open(angular.copy($scope.device))
}
}, true)
}
diff --git a/res/app/device-list/device-list-details-controller.js b/res/app/device-list/device-list-details-controller.js
index a12533bc..b9a217b9 100644
--- a/res/app/device-list/device-list-details-controller.js
+++ b/res/app/device-list/device-list-details-controller.js
@@ -30,7 +30,7 @@ module.exports = function DeviceListCtrlDetails($scope, DeviceService, GroupServ
// })
$scope.tableSorting = {
- stateSorting: 'asc' // initial sorting
+ stateSorting: 'desc' // initial sorting
}
// SettingsService.bind($scope, {
// key: 'tableSorting',
diff --git a/res/common/lang/po/stf.ja.po b/res/common/lang/po/stf.ja.po
index e4bd5e5c..1e168a43 100644
--- a/res/common/lang/po/stf.ja.po
+++ b/res/common/lang/po/stf.ja.po
@@ -235,13 +235,9 @@ msgstr "開発者向け設定"
msgid "Device"
msgstr "デバイス"
-#: /Users/a12907/STF/stf/tmp/html/app/components/stf/common-ui/modals/fatal-message/fatal-message.html
-msgid "Device is not in use anymore"
-msgstr "実機が使われなくなりました"
-
#: /Users/a12907/STF/stf/tmp/html/app/components/stf/common-ui/modals/fatal-message/fatal-message.html
msgid "Device was disconnected"
-msgstr "デバイスがオフラインになりました"
+msgstr "デバイスへの接続が切れました"
#: /Users/a12907/STF/stf/tmp/html/app/device-list/device-list.html
msgid "Devices"
@@ -1038,6 +1034,13 @@ msgstr "Y DPI"
msgid "Yes"
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 "Device is not in use anymore"
+#~ msgstr "実機が使われなくなりました"
+
#~ msgid "Device Port"
#~ msgstr "端末側のポート"
diff --git a/res/common/lang/po/stf.pot b/res/common/lang/po/stf.pot
index a1bbf14f..e8e7ec97 100644
--- a/res/common/lang/po/stf.pot
+++ b/res/common/lang/po/stf.pot
@@ -231,10 +231,6 @@ msgstr ""
msgid "Device"
msgstr ""
-#: /Users/a12907/STF/stf/tmp/html/app/components/stf/common-ui/modals/fatal-message/fatal-message.html
-msgid "Device is not in use anymore"
-msgstr ""
-
#: /Users/a12907/STF/stf/tmp/html/app/components/stf/common-ui/modals/fatal-message/fatal-message.html
msgid "Device was disconnected"
msgstr ""
@@ -1026,3 +1022,7 @@ msgstr ""
#: /Users/a12907/STF/stf/res/app/components/stf/device/device-info-filter/index.js
msgid "Yes"
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 ""
diff --git a/res/common/lang/translations/stf.ja.json b/res/common/lang/translations/stf.ja.json
index 9eb6812c..cb777c32 100644
--- a/res/common/lang/translations/stf.ja.json
+++ b/res/common/lang/translations/stf.ja.json
@@ -1 +1 @@
-{"ja":{"(Absent)":"(オフライン)","-":"-","A new version of STF is available":"STFの新しいバージョンがリリースされました","ABI":"ABI","AC":"AC","Absent":"オフライン","Action":"アクション","Activity":"アクティビティ","Add":"追加","Advanced":"高度機能","Advanced Input":"高度な入力","Airplane Mode":"機内モード","App":"アプリ","App Store":"アプリストア","App Upload":"アプリアップロード","Apps":"アプリ","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":"クッキー","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 is not in use anymore":"実機が使われなくなりました","Device was disconnected":"デバイスがオフラインになりました","Devices":"端末リスト","Discharging":"放電中","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":"ポートフォワード","Full":"フル","Get":"取得","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":"メディア","Menu":"メニュー","Mobile":"モバイル","Mobile DUN":"モバイルDUN","Mobile High Priority":"モバイル最優先","Mobile MMS":"モバイルMMS","Mobile SUPL":"モバイルSUPL","Model":"機種名","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":"準備中","Present":"存在する","Previous":"前","Processing...":"処理中...","Product":"型番","Pushing app...":"アプリをプッシュ中...","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注入","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":"はい","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":{"(Absent)":"(オフライン)","-":"-","A new version of STF is available":"STFの新しいバージョンがリリースされました","ABI":"ABI","AC":"AC","Absent":"オフライン","Action":"アクション","Activity":"アクティビティ","Add":"追加","Advanced":"高度機能","Advanced Input":"高度な入力","Airplane Mode":"機内モード","App":"アプリ","App Store":"アプリストア","App Upload":"アプリアップロード","Apps":"アプリ","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":"クッキー","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 was disconnected":"デバイスへの接続が切れました","Devices":"端末リスト","Discharging":"放電中","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":"ポートフォワード","Full":"フル","Get":"取得","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":"メディア","Menu":"メニュー","Mobile":"モバイル","Mobile DUN":"モバイルDUN","Mobile High Priority":"モバイル最優先","Mobile MMS":"モバイルMMS","Mobile SUPL":"モバイルSUPL","Model":"機種名","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":"準備中","Present":"存在する","Previous":"前","Processing...":"処理中...","Product":"型番","Pushing app...":"アプリをプッシュ中...","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注入","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.":"この実機のリモート操作ができなくなりました。","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