Andy

Localization Software Engineer at 

Twitter: @Klaarname

2025-06-19

@gernot Only automatically managed strings can get their comment generated, and Xcode generates one as soon as it detects them in code and syncs them into the String Catalog.

The idea is that you are in full control over manual strings (the ones you add to the catalog yourself).
Because you already know how the new string is supposed to be used, you also know what comment is relevant for it.
In order to generate a comment, the string has to be used in code first. That means quite a bit of jumping back & forth to tell Xcode to generate a comment via the context menu.

But yes, please file a feedback if you think it would be beneficial to get a generated comment!

2025-06-18

@fruitcoder That is currently not possible, no.
The ideal workflow is one where strings are defined and used in the same module, sharing them across bundles complicates everything.

Changing a key’s spelling, fixing a typo, or adding a format specifier in the String Catalog would break the API of your module if the symbols were public. We didn’t want to introduce that footgun.
Code has deprecation and availability annotations to help with breaking changes, but strings don’t have that.

If you want to keep that project setup consider wrapping your internal symbols in public API. This way it’s obvious that any changes cause clients to break.
It’s more manual work, but because these are obvious changes to public functions, it should make you think about clients.

2025-06-18

@kristoffer that is true. Depending on your project structure you might not get the full benefit.

If the symbols were public, fixing a typo in a key or adding a format specifier would break the module’s API and all clients using that symbol though.
In code we have tools like deprecation and availability annotations, which we don’t have for strings.
If you want to keep your current architecture, you could wrap the internal symbols in a public API. This way you stay in full control over what it exposes as API. Yes, that is more manual work, but makes any breaking change really obvious.

2025-06-18

@MuseumShuffle @averyvine @BenRiceM @harshil I’m really happy the feature and session are received that well! ☺️

And it was nice meeting you!

2025-06-17

@klemensstrasser wow, congratulations 🥳

Andy boosted:
Pat Murray 🏳️‍🌈_patmurray
2025-06-14

Some really exciting new APIs in CloudKit Sharing out of !!!

🔗 One Time URL to invite participants without knowing their email address / phone number / userRecordID

👤 Participant Role type of Administrator

📩 CKShareRequestAccessOperation to allow users to request access to a share

🔒 CKRecordZoneEncryptionScope allowing for zone-wide encryption

developer.apple.com/documentat

2025-06-14

@gernot That makes me really happy to hear! ☺️

2025-06-13

@ryanbooker wait I’m confused now.

Manual strings can be referenced via their key as string in code, or by using the new generated Swift symbol.

Automatic strings usually make their way into the string catalog via extraction from code. They can also be “referenced” via their key, as string in code (so technically a separate string, extracted, and then merged to the other extracted copy).

So when you start with a manually managed string and refactor to use symbols, it stays manually managed.
If you refactor an automatically managed string to be referenced via symbol, it becomes manually managed.

2025-06-13

@ryanbooker no, either strings are extracted in code and kept in sync (“automatically managed” incl. comment generation), or you add them in the String Catalog (“manually managed”) and you can change key, value, remove them, and use their generated symbols.

2025-06-13

@ryanbooker Thank you!

Find & replace is probably the best option, sorry.
Maybe if you remove the accessors generated by XCStringsTool, and let the compiler warnings guide you to where you use a generated symbol by Xcode? Then you go through them and insert the new symbol names, which should be straight forward thanks to auto completion.

2025-06-11

Xcode 26 can help you write helpful comments for extracted strings. This will help translators with context.
Additionally, loading localized strings from a String Catalog is now as easy as calling a function in Swift: Button(.orderButtonTitle)
Auto completion suggests your table name and all manual strings contained in this table!

2025-06-11

If you localize your app, I recommend checking out our talk!
I speak about getting started with localization, but then quickly advance into our two big features this year:
Generated comments, and Swift symbols for manually added strings.

developer.apple.com/videos/pla

2025-06-10

Now is the time to book lab appointments for Xcode and localization!

Come and talk with us about your localization workflow.
There’s a good chance that we find one or two opportunities for improvements :)

2025-06-10

@Jeehut haha, let me know how you like it 😄

Andy boosted:
Greg Pierceagiletortoise
2025-06-10

There are some nifty new APIs that didn’t make the keynotes. AlarmKit seems really handy for a wide class of apps. developer.apple.com/videos/pla

Andy boosted:
2025-06-10

So delighted to share Jeremy and my talk all about rich text editing in SwiftUI with AttributedString! Many people worked together to make this API and this talk happen, and I’m so grateful to all of them! Can’t wait to see it out there in your apps!

RE: sfba.social/@jmschonfeld/11465

Andy boosted:
Jeremy Schonfeldjmschonfeld@sfba.social
2025-06-10

If you’re excited about new rich text capabilities in #SwiftUI and powerful AttributedString enhancements, be sure to check out our #WWDC25 session where Max and I dive into all of the details! 🥐🥐 developer.apple.com/videos/pla

Andy boosted:
Tim Roesnertimroesner
2025-06-10

With all the excitement today, don't forget to take advantage and sign up for labs! developer.apple.com/wwdc25/ses

Also new this year are some online group labs: developer.apple.com/wwdc25/ses

2025-06-10

@Typ0genius thank you! And just one of the two big features this year! 🥳

2025-06-09

@gernot Sommer too! IL looks pretty good nowadays!

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst