Feature / Configurable web search engine (#3406)
* configurable web search engine * add webSearchEngine config in mobile ui * add webSearchEngine config in desktop ui * add webSearchEngine config * add messages for web search engine config * correct locale
This commit is contained in:
		
							parent
							
								
									0ce64f8c33
								
							
						
					
					
						commit
						afdb23ff57
					
				
					 5 changed files with 29 additions and 1 deletions
				
			
		| 
						 | 
					@ -824,6 +824,8 @@ desktop/views/components/settings.vue:
 | 
				
			||||||
  note-visibility: "投稿の公開範囲"
 | 
					  note-visibility: "投稿の公開範囲"
 | 
				
			||||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
					  default-note-visibility: "デフォルトの公開範囲"
 | 
				
			||||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
					  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
				
			||||||
 | 
					  web-search-engine: "ウェブ検索エンジン"
 | 
				
			||||||
 | 
					  web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
 | 
				
			||||||
  auto-popout: "ウィンドウの自動ポップアウト"
 | 
					  auto-popout: "ウィンドウの自動ポップアウト"
 | 
				
			||||||
  auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
 | 
					  auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
 | 
				
			||||||
  advanced: "詳細設定"
 | 
					  advanced: "詳細設定"
 | 
				
			||||||
| 
						 | 
					@ -1564,6 +1566,8 @@ mobile/views/pages/settings.vue:
 | 
				
			||||||
  note-visibility: "投稿の公開範囲"
 | 
					  note-visibility: "投稿の公開範囲"
 | 
				
			||||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
					  default-note-visibility: "デフォルトの公開範囲"
 | 
				
			||||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
					  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
				
			||||||
 | 
					  web-search-engine: "ウェブ検索エンジン"
 | 
				
			||||||
 | 
					  web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
 | 
				
			||||||
  disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
 | 
					  disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
 | 
				
			||||||
  load-raw-images: "添付された画像を高画質で表示する"
 | 
					  load-raw-images: "添付された画像を高画質で表示する"
 | 
				
			||||||
  load-remote-media: "リモートサーバーのメディアを表示する"
 | 
					  load-remote-media: "リモートサーバーのメディアを表示する"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,10 @@ export default Vue.extend({
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	methods: {
 | 
						methods: {
 | 
				
			||||||
		search() {
 | 
							search() {
 | 
				
			||||||
			window.open(`https://www.google.com/?#q=${this.query}`, '_blank');
 | 
								const engine = this.$store.state.settings.webSearchEngine ||
 | 
				
			||||||
 | 
									'https://www.google.com/?#q={{query}}';
 | 
				
			||||||
 | 
								const url = engine.replace('{{query}}', this.query)
 | 
				
			||||||
 | 
								window.open(url, '_blank');
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -91,6 +91,11 @@
 | 
				
			||||||
					</ui-select>
 | 
										</ui-select>
 | 
				
			||||||
				</section>
 | 
									</section>
 | 
				
			||||||
			</section>
 | 
								</section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								<section>
 | 
				
			||||||
 | 
									<header>{{ $t('web-search-engine') }}</header>
 | 
				
			||||||
 | 
									<ui-input v-model="webSearchEngine">{{ $t('web-search-engine') }}<span slot="desc">{{ $t('web-search-engine-desc') }}</span></ui-input>
 | 
				
			||||||
 | 
								</section>
 | 
				
			||||||
		</ui-card>
 | 
							</ui-card>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<ui-card class="web" v-show="page == 'web'">
 | 
							<ui-card class="web" v-show="page == 'web'">
 | 
				
			||||||
| 
						 | 
					@ -455,6 +460,11 @@ export default Vue.extend({
 | 
				
			||||||
			set(value) { this.$store.dispatch('settings/set', { key: 'defaultNoteVisibility', value }); }
 | 
								set(value) { this.$store.dispatch('settings/set', { key: 'defaultNoteVisibility', value }); }
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							webSearchEngine: {
 | 
				
			||||||
 | 
								get() { return this.$store.state.settings.webSearchEngine; },
 | 
				
			||||||
 | 
								set(value) { this.$store.dispatch('settings/set', { key: 'webSearchEngine', value }); }
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		showReplyTarget: {
 | 
							showReplyTarget: {
 | 
				
			||||||
			get() { return this.$store.state.settings.showReplyTarget; },
 | 
								get() { return this.$store.state.settings.showReplyTarget; },
 | 
				
			||||||
			set(value) { this.$store.dispatch('settings/set', { key: 'showReplyTarget', value }); }
 | 
								set(value) { this.$store.dispatch('settings/set', { key: 'showReplyTarget', value }); }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -86,6 +86,11 @@
 | 
				
			||||||
						</ui-select>
 | 
											</ui-select>
 | 
				
			||||||
					</section>
 | 
										</section>
 | 
				
			||||||
				</section>
 | 
									</section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<section>
 | 
				
			||||||
 | 
										<header>{{ $t('web-search-engine') }}</header>
 | 
				
			||||||
 | 
										<ui-input v-model="webSearchEngine">{{ $t('web-search-engine') }}<span slot="desc">{{ $t('web-search-engine-desc') }}</span></ui-input>
 | 
				
			||||||
 | 
									</section>
 | 
				
			||||||
			</ui-card>
 | 
								</ui-card>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			<x-drive-settings/>
 | 
								<x-drive-settings/>
 | 
				
			||||||
| 
						 | 
					@ -365,6 +370,11 @@ export default Vue.extend({
 | 
				
			||||||
			get() { return this.$store.state.settings.defaultNoteVisibility; },
 | 
								get() { return this.$store.state.settings.defaultNoteVisibility; },
 | 
				
			||||||
			set(value) { this.$store.dispatch('settings/set', { key: 'defaultNoteVisibility', value }); }
 | 
								set(value) { this.$store.dispatch('settings/set', { key: 'defaultNoteVisibility', value }); }
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							webSearchEngine: {
 | 
				
			||||||
 | 
								get() { return this.$store.state.settings.webSearchEngine; },
 | 
				
			||||||
 | 
								set(value) { this.$store.dispatch('settings/set', { key: 'webSearchEngine', value }); }
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mounted() {
 | 
						mounted() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,6 +35,7 @@ const defaultSettings = {
 | 
				
			||||||
	iLikeSushi: false,
 | 
						iLikeSushi: false,
 | 
				
			||||||
	rememberNoteVisibility: false,
 | 
						rememberNoteVisibility: false,
 | 
				
			||||||
	defaultNoteVisibility: 'public',
 | 
						defaultNoteVisibility: 'public',
 | 
				
			||||||
 | 
						webSearchEngine: 'https://www.google.com/?#q={{query}}',
 | 
				
			||||||
	mutedWords: [],
 | 
						mutedWords: [],
 | 
				
			||||||
	games: {
 | 
						games: {
 | 
				
			||||||
		reversi: {
 | 
							reversi: {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue