Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MainMenu.xib を翻訳してみた
Search
Megabits_mzq
April 25, 2022
Programming
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MainMenu.xib を翻訳してみた
Swift 愛好会 2022/4/25
Megabits_mzq
April 25, 2022
More Decks by Megabits_mzq
See All by Megabits_mzq
OTP を自動で入力する裏技
megabitsenmzq
0
170
SwiftUI と Shader を活用した楽しいオンボーディング起動画面の作成
megabitsenmzq
0
130
Liquid Glass, どこが変わったのか
megabitsenmzq
0
180
iPhone 16 Camera Control
megabitsenmzq
0
160
240fps で画像処理したい
megabitsenmzq
0
240
Swift 開発が楽になる道具たち
megabitsenmzq
1
780
Animoji を作ってみた
megabitsenmzq
0
210
WKWebView とめんどくさいお友達
megabitsenmzq
1
780
先週解決した SwiftUI 問題
megabitsenmzq
0
150
Other Decks in Programming
See All in Programming
AI時代のUIはどこへ行く?その2!
yusukebe
22
7.5k
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
15
7.5k
どこまでゆるくて許されるのか
tk3fftk
0
260
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
300
Performance Engineering for Everyone
elenatanasoiu
0
230
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
230
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
320
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.3k
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
130
これからAgentCoreを触る方へトレンドはGatewayです
har1101
2
320
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
260
Creating Composable Callables in Contemporary C++
rollbear
0
170
Featured
See All Featured
Building Adaptive Systems
keathley
44
3.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Producing Creativity
orderedlist
PRO
348
40k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
2
250
Docker and Python
trallard
47
3.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
590
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
55k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Music & Morning Musume
bryan
47
7.2k
The Spectacular Lies of Maps
axbom
PRO
1
830
Transcript
前回の続き WKWebView のめんどくさいお友達がまた増えた! let script2 = """ class NotificationOverride {
static get permission() { window.webkit.messageHandlers.notifyRequest.postMessage(true); return "granted"; } static requestPermission (callback) { callback("granted"); window.webkit.messageHandlers.notifyRequest.postMessage(true); } constructor (title, options) { window.webkit.messageHandlers.notify.postMessage({ title: title, body: options.body }); } } window.Notification = NotificationOverride; """ let userScript2 = WKUserScript(source: script2, injectionTime: .atDocumentStart, forMainFrameOnly: true) webView.configuration.userContentController.addUserScript(userScript2) webView.configuration.userContentController.add(self, name: "notify") webView.configuration.userContentController.add(self, name: "notifyRequest")
None
webView.configuration.userContentController.add(self, name: "notify")
webView.configuration.userContentController.removeScriptMessageHandler(forName: "notify") webView.configuration.userContentController.removeScriptMessageHandler(forName: "notifyRequest")
Jinyu Meng (Megabits) MainMenu を⾃動翻訳してみた
個 ⼈ 開 発 者 Megabits ⾦⿂ 留 学 ⽣
None
None
None
旧 zh_CN zh_TW zh_HK 新 zh_Hans zh_Hant zh_HK
None
Main Menu Translator
None
Demo Demo Demo Demo
None
None
Xcloc
None
/System/Library/Frameworks/SwiftUI.framework
/System/Library/Frameworks/AppKit.framework /System/Library/PrivateFrameworks/UIKitServices.framework /System/Library/Frameworks/CoreText.framework /System/Library/PrivateFrameworks/UIKitMacHelper.framework フォント全般、ツールバーとサイドバー切り替え 「ペーストしてスタイルを合わせる」 「Ligatures」 「Ligature」 「Bigger」
/System/Applications/Utilities/Script Editor.app /System/Applications/Utilities/Terminal.app プリント全般 「最後に保存した状態に戻す」
None
extension UInt8 { var printableAscii : String { switch self
{ case 32..<128: return String(bytes: [self], encoding:.ascii)! default: if String(bytes: [(self & 127)], encoding:.ascii)! == "b" { return "…" } else { return "/" } } } } func XibKeysFrom(stringArray: [String]) -> [XibKey]? { var keyArray = [String : String]() var count = stringArray.count while count > 1 { let item = stringArray[stringArray.count - count] if item.hasSuffix(".title") { let source = stringArray[stringArray.count - count + 1] if !source.hasSuffix(".title") { count -= 1 keyArray[item] = source } } count -= 1 } if keyArray.isEmpty { return nil } return keyArray.map({XibKey(key: $0.key, source: $0.value)}) }
None
None