What do %@, %f, %i mean? What are they?
When translating apps you will often find such characters in the middle of your text, but what are they?
They are called String Format Specifiers and are essentially placeholders for data pulled in when the app is running. Let’s look at a very basic example:
When you start an app for the first time, it may ask for your name. You enter your name, Robert, and the next window appears. This window says, “Hello, Robert”. How was this text created?
The developer used a format specifier in their code. The text you receive as a translator says “Hello, %@”. When the app runs, it looks for what %@ actually is. In this case, it is my name, Robert.
Unfortunately it is difficult to know exactly what this text will say, making it even more difficult for languages which have several cases and articles. There are some hints however which can help you translate around these format specifiers.
Different types mean different things
These characters aren’t all the same and can usually indicate what a developer intends to take the place of the format specifier. This is a general rule and isn’t true in every situation, but in most cases will help you.
1. Your current location is %@ = a “string”, aka basic text.
Your current location is London
2. The temperature outside is %f c = a “double”, aka a decimal number.
The temperature outside is 14.5 c
3. You have %d contacts in your address book = a standard “integer”, aka a full number
You have 92 contacts in your address book
%d, %D or %i can be positive or negative numbers. %u can only be a positive number.
We’d really appreciate it if you could rate this post to let us know how useful you found it! :) Thanks!