Skip to content

Conversation

@whyisjake
Copy link
Owner

@whyisjake whyisjake commented Nov 19, 2025

Summary

Localization Infrastructure

  • Add language detection to AIService using Locale.current.language.languageCode
  • Update AI prompts to include language instruction for Spanish, French, German, Italian, Portuguese, Japanese, Korean, and Chinese
  • Localize static newsletter strings (Today's Brief, closing messages)
  • Add FeedCategory.localizedName property for localized category display

Complete Japanese Translations

  • Add Japanese translations for all 100+ app strings in Localizable.xcstrings
  • Translations include UI elements, buttons, messages, and category names
  • Key translations:
    • Navigation: 設定 (Settings), お気に入り (Favorites), 未読 (Unread)
    • Actions: 保存 (Save), 削除 (Delete), 共有 (Share), キャンセル (Cancel)
    • Feeds: フィードを同期 (Sync feeds), RSSフィードURL (RSS Feed URL)
    • AI features: AIサマリー (AI Summary), ニュースレター (Newsletter)

Spanish Localization

  • Add Spanish translations for AI suggestion buttons in AIChatView
  • Fix newsletter header prompt to avoid Apple Intelligence safety filter triggers

Test plan

Japanese Localization

  • Set device language to Japanese in Settings > General > Language & Region
  • Verify all UI strings display in Japanese
  • Generate a newsletter and verify Japanese content
  • Check AI suggestion buttons show in Japanese

Spanish Localization

  • Set device language to Spanish
  • Generate a newsletter and verify Spanish content
  • Verify suggestion buttons show in Spanish

🤖 Generated with Claude Code

- Add language detection to AIService using Locale.current
- Update AI prompts to include language instruction for Spanish, French, German, Italian, Portuguese, Japanese, Korean, and Chinese
- Localize static newsletter strings (Today's Brief, closing messages)
- Add Spanish translations for AI suggestion buttons in AIChatView
- Fix newsletter header prompt to avoid safety filter triggers
- Localize FeedCategory enum with localizedName property

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds comprehensive Spanish localization support for AI-generated content and static UI elements in the RSS reader app. The implementation includes language detection based on device settings and automatic AI response generation in the user's preferred language.

Key Changes

  • Implements language detection using Locale.current.language.languageCode with support for 8 languages (Spanish, French, German, Italian, Portuguese, Japanese, Korean, Chinese)
  • Refactors feed category management to use a centralized FeedCategory enum with localized display names
  • Localizes all static newsletter strings and AI chat suggestion buttons using String(localized:)

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
Today/Views/FeedListView.swift Introduces FeedCategory enum with localizedName property and refactors hardcoded category strings to use the enum throughout pickers and display
Today/Views/AIChatView.swift Wraps AI chat suggestion button text with String(localized:) for translation support
Today/Services/OnDeviceAIService.swift Localizes newsletter closing messages in both streaming and non-streaming generation methods
Today/Services/AIService.swift Adds language detection and instruction logic, integrates language instructions into all three AI prompt locations (summary, chat, newsletter intro)
Localizable.xcstrings Provides complete Spanish translations for all new and existing localizable strings including categories, messages, and UI elements (1766 lines total)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@whyisjake whyisjake changed the title Add Spanish localization support for AI responses Add complete Japanese translations and Spanish localization support Nov 19, 2025
whyisjake and others added 3 commits November 19, 2025 08:32
- Add Japanese (ja) translations for 100+ strings in Localizable.xcstrings
- Translations include navigation, actions, feeds, AI features, and messages
- Key translations: 設定 (Settings), お気に入り (Favorites), 未読 (Unread),
  保存 (Save), 削除 (Delete), 共有 (Share), キャンセル (Cancel)
- Add language detection schemes for testing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add localizedName property to AppearanceMode enum (System, Light, Dark)
- Add localizedName property to FontOption enum (Serif, Sans Serif)
- Update pickers to use localizedName instead of rawValue
- Add German, Spanish, and Japanese translations for all options

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 10 out of 11 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

whyisjake and others added 2 commits November 19, 2025 09:26
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@whyisjake whyisjake merged commit 9efe4bd into main Nov 19, 2025
@whyisjake whyisjake deleted the feature/spanish branch November 19, 2025 17:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants