Commit Graph
52 Commits
Author SHA1 Message Date
Dariusz Koryto 80dadb3194 feat(i18n): add Polish as an in-app locale (#473)
* feat(editor): add setting to turn off spellcheck underlines

Add a device-local "Underline spelling mistakes" switch to the editing
preferences. The rich-text editor and the mobile plain-text editor now
set spellcheck from this preference and update live when it changes.
Defaults to enabled, so existing behavior is unchanged.

Refs #468

* feat(i18n): add Polish as an in-app locale

Add Polish (pl) across clients, mirroring how Japanese was added:

- Shared: full pl catalog, locale matching for pl/pl-*, Polish memo
  templates and factory AI prompts, mobile editor strings, and Polish as
  an AI translation target and selection-translate chip.
- Web: "Polski" in the language picker; the catalog is lazy-loaded in its
  own i18n-pl chunk and kept out of the PWA precache like ja.
- Android: pl locale option, mobile-only strings, web-clip labels.
  Messages that only had an English branch now use English for every
  non-Chinese locale, so Japanese no longer falls back to Chinese there.
- iOS: .polish UI language (pl-PL), pl argument for every t() call,
  pl in CFBundleLocalizations and Localizable.xcstrings.
- Companion: accepts locale "pl" and detects Polish requests.
- Browser extension: _locales/pl messages.
- Marketing site: /pl/ pages, hreflang, sitemap, language switcher.
- Google Play listing copy for pl-PL (manual publish only).

* fix(ios): show the note editor in Polish and Japanese

The iOS editor received every interface language except English as
Chinese, so with Polish or Japanese selected its toolbar and image
gallery controls were labeled in Chinese. Pass Polish and Japanese
through to the embedded editor, label its toolbar and the shared image
gallery controls in both languages, and rebuild the checked-in
EditorBundle. The Android editor uses the same gallery labels.

Also translate the last iOS strings that had no Polish text: the
follow-system language label, note created/updated times and the
current-device marker.

Refs #473

* fix(companion): recognize Polish typed without diacritics

Requests in Latin letters without Polish diacritics were always treated
as English, so with a Polish interface "Napisz plan na jutro" got an
English reply. With a Polish interface, such text is now told apart by
common English and Polish words; when it is still unclear, the recent
conversation and then the interface language decide. Other interface
languages keep treating Latin text as English.

Refs #473

* chore(ios): regenerate the Xcode project for Polish

Run xcodegen so the shipped Info.plist lists Polish in
CFBundleLocalizations and the project knows the pl region. The
hand-written AiDirectStream.swift entries are replaced by the IDs
xcodegen generates. MARKETING_VERSION and CURRENT_PROJECT_VERSION stay
in the project file because the release script and Xcode Cloud update
them there.

Refs #473

* i18n(pl): translate the sidebar shortcut, desktop menus and video scope

Add Polish for features that reached main while this branch was open:
the show/hide sidebar shortcut label, the desktop application and
editing context menus, and the new "ai:generate" MCP scope. The desktop
menus switch to Polish for pl and pl-* locales; other locales are
unchanged.

Refs #473
2026-10-06 16:18:38 +08:00
tianma-if fecc79ff49 chore: release v1.100.0 [skip ci] 2026-10-05 12:01:32 +08:00
tianma-if 8472f19e46 feat(mobile): create notebooks in Android and iOS apps 2026-10-05 11:56:11 +08:00
tianma-if 1767e470bf chore: release v1.99.2 [skip ci] 2026-10-04 18:36:19 +08:00
tianma-if 60ada1ef49 chore: release v1.99.0 [skip ci] 2026-10-03 12:47:57 +08:00
tianma-if d7e807fc3c chore: release v1.98.0 [skip ci] 2026-10-02 19:33:41 +08:00
tianma-if d795e17fb6 chore: release v1.97.0 [skip ci] 2026-10-02 13:02:54 +08:00
tianma-if 87ab14fb4d chore: release v1.96.0 [skip ci] 2026-10-01 23:04:33 +08:00
tianma-if e20be51b6e chore: release v1.95.0 [skip ci] 2026-10-01 12:53:57 +08:00
tianma-if d4d212878f chore: release v1.94.0 [skip ci] 2026-09-30 21:37:43 +08:00
tianma-if 379678169d chore: release v1.93.0 [skip ci] 2026-09-30 13:04:17 +08:00
tianma-if 54331ebbe8 chore: release v1.92.0 [skip ci] 2026-09-30 02:23:16 +08:00
tianma-if 4ff9ed65e2 chore: release v1.91.0 [skip ci] 2026-09-30 02:03:59 +08:00
tianma-if eaf87eaa81 chore: release v1.90.0 [skip ci] 2026-09-28 00:36:46 +08:00
tianma-if 8b0bfaf4a8 chore: release v1.89.0 [skip ci] 2026-09-27 13:27:10 +08:00
tianma-if 3cfccb872e chore: release v1.88.0 [skip ci] 2026-09-26 22:13:04 +08:00
tianma-if 1788defbea chore: release v1.87.0 [skip ci] 2026-09-26 01:11:57 +08:00
tianma-if ecbb755355 chore: release v1.86.0 [skip ci] 2026-09-24 17:51:55 +08:00
tianma-if ba6dc54c0e chore: release v1.85.0 [skip ci] 2026-09-24 00:14:11 +08:00
tianma-if d176514325 chore: release v1.84.0 [skip ci] 2026-09-23 16:52:34 +08:00
tianma-if 309b348736 chore: release v1.83.0 [skip ci] 2026-09-23 00:28:24 +08:00
tianma-if 092b5448ba chore: release v1.82.0 [skip ci] 2026-09-22 15:58:37 +08:00
tianma-if 7822701feb chore: release v1.81.0 [skip ci] 2026-09-22 00:25:09 +08:00
tianma-if f82de3341f fix(release): sync generated iOS project version 2026-09-21 11:49:48 +08:00
tianma-if fabfede7e0 fix(ios): stop xcodegen from archiving the previous App Store version
Cloud #50 exported 1.74.0 because project.yml hardcoded MARKETING_VERSION
and ci_post_clone regenerated the Xcode project from that YAML. Keep the
version in Version.xcconfig and stamp it into the pbxproj before archive.
2026-09-20 23:57:33 +08:00
tianma-if d75e593363 chore(ios): prepare App Store v1.74.0
Reserve Xcode Cloud build 49 for the 1.74.0 App Store submission so iOS
can ship the shared editor schema, math/gallery/divider alignment, and
in-app Japanese.
2026-09-16 10:25:23 +08:00
tianma-if 54edca629a chore(ios): prepare App Store v1.70.0
Reserve Xcode Cloud build 48 for the 1.70.0 App Store submission so iOS
can catch up with the GitHub release and ship the Japanese listing.
2026-09-14 10:57:00 +08:00
tianma-if 7b5134be8c chore(ios): prepare App Store v1.67.0
Reserve Xcode Cloud build 47 for the 1.67.0 App Store submission so iOS can ship on-device AI streaming.
2026-09-11 22:48:16 +08:00
tianma-if c9392c2909 chore(ios): prepare App Store v1.65.0 2026-09-11 00:30:21 +08:00
tianma-if 38662d8d6e fix(ios): synchronize App Store version sources 2026-09-06 22:32:25 +08:00
tianma-if ce6d4a18e9 fix(ios): make Xcode Cloud editor build reproducible 2026-09-05 00:26:02 +08:00
tianma-if edf2b52d7a chore(ios): prepare App Store v1.57.0 2026-09-05 00:17:23 +08:00
tianma-if 5cae15a8e7 chore(ios): record App Store build 40 2026-08-26 03:45:53 +08:00
tianma-if 02fa0a7364 chore(ios): prepare App Store v1.42.1 2026-08-26 03:38:15 +08:00
tianma-if adcee97f78 chore(ios): prepare App Store v1.39.0 2026-08-24 03:55:32 +08:00
tianma-if 0decbaf87a chore(ios): prepare App Store v1.38.0 2026-08-23 11:37:11 +08:00
tianma-if 7f8919b963 fix(android): exclude sideload permission from Play builds 2026-08-20 23:36:48 +08:00
tianma-if 7d76b6d9a4 chore(ios): prepare App Store 1.35.1 build 34 2026-08-20 23:17:08 +08:00
tianma-if a192088d41 chore(ios): prepare App Store 1.31.0 build 34 2026-08-18 11:00:16 +08:00
tianma-if 3661cc3367 feat: add native mobile AI note assistant 2026-08-10 07:05:02 +08:00
tianma-if 8af75fc0de feat: align iOS mobile parity 2026-08-09 22:40:55 +08:00
tianma-if b357d1d9d3 refactor: modularize cross-platform workspace flows 2026-08-09 01:12:09 +08:00
tianma-if 754e520aa7 refactor: split iOS settings and revision views 2026-08-08 23:12:30 +08:00
tianma-if f39c24b96d refactor: split API seeds and iOS editor helpers 2026-08-08 22:27:45 +08:00
tianma-if ca218b3226 feat(mobile,ios): template create parity and DomWebView input stability
Add note-from-template on iOS with the same entry points as Android, harden
Android create/edit so DomWebView keeps focus, and silence stale injectJavaScript
rejections after editor unmount. Related to #187.
2026-08-08 12:22:02 +08:00
tianma-if 73d3bad9a3 fix(ios): harden Xcode Cloud store builds and auto-upload
Use Automatic signing and Cloud lifecycle scripts so App Store IPAs get
correct build numbers and reach ASC even when secondary exports fail.
2026-08-07 22:51:36 +08:00
tianma-if 96e4473a1b fix(ios): create-back commit, press motion, editor keyboard and toolbar
Make create Back commit like Android so notes appear in the list and the
next New note opens empty. Harden memo-card press feedback, allow
programmatic WKWebView keyboard focus, and pin the format toolbar above
the scrolling editor body so it no longer jumps under the software keyboard.
2026-08-07 14:54:04 +08:00
tianma-if 0bbfd47357 release(ios): ship SwiftUI binary 1.12.6 (31) for App Review
Bump the native build number, prefer stable Xcode for archives, disable
fastlane precheck IAP checks, and document the App Store archive path.
2026-08-07 13:45:57 +08:00
tianma-if aaa8d47799 fix(ios): harden edit/sync so notes keep text, order, and Markdown rendering
Rebase stale outbox revisions, leave edit onto the list without flashing
detail, treat TipTap JSON as structural truth for image order while
deriving markdown for sync, and force the detail viewer through
setMarkdown so flattened contentJson no longer kills headings/lists.
2026-08-07 12:19:14 +08:00
tianma-if 753a09c9a4 perf(ios): reuse TipTap WebViews and harden detail/edit open path
Keep one long-lived viewer and editor WKWebView so switching notes only
rebinds setContent instead of reloading the EditorBundle. Warm both
runtimes after sign-in, restore Evernote-style focus-at-end on edit,
block empty autosave from clobbering notes, and stop showing flattened
contentText when the rich viewer is still booting.
2026-08-07 11:12:04 +08:00