Why does ‘freedom’ return the french fries 🍟 emoji?
In my emoji picker when I enter freedom
I see some french fries.
Why is that?
Practical example:
So if I want to write something like the following:
People of the world appreciate what you're given, go out there and enjoy your freedom
So emojifying the above quote is somewhat dangerous:
👫👬 of the 🌎, appreciate what you're given, go out there and enjoy your 🍟.
Solution 1:
The 🍟 emoji is offered as an option for any search matching the string ‘freedom fries’, which
was a political euphemism for French fries in the United States. The term was born in 2003 when the then Republican Chairman of the Committee on House Administration, Bob Ney, renamed the menu item in three Congressional cafeterias in response to France's opposition to the proposed invasion of Iraq.
In the character picker, any prefix substring match on a word relating to that emoji will present the emoji for selection. Therefore ‘free’ or ‘freedom’ will match ‘freedom fries’.
Where does the OS find these strings?
CoreEmoji.framework contains a list of emojis and relevant search strings, per locale, in
/System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/Resources/en.lproj/
replacing en
with the locale. For the strings used by the character picker when searching, look in CharacterPicker.strings. For example:
/System/L*/Priv*/CoreE*/V*/A/R*/en.*/C*
Open the .strings file as a .plist in Xcode to prettyprint it as shown above, or use plutil
:
$ plutil -extract "🍟" xml1 -o - /System/L*/Priv*/CoreE*/V*/A/R*/en.*/C*
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<string>fries | freedom fries | french fries | fast food | junk food | food | object</string>
</plist>
$ plutil -convert json -o - /System/L*/Priv*/CoreE*/V*/A/R*/en.*/C* | jq -r ".[\"🍟\"]"
fries | freedom fries | french fries | fast food | junk food | food | object
I don't want QuickType to suggest 🍟 as an autocomplete to ‘freedom’!
It won't. QuickType autocomplete emoji suggestions, or Messages tap-to-replace words with emojis when the emoji keyboard is shown, is defined by another file, FindReplace.strings.
Emojis are suggested as word replacements when an entire word in the original text matches an entire word in a string relating to the emoji. The word ‘freedom’ will not be replaced by the emoji since the ‘freedom fries’ phrase only exists in CharacterPicker.strings, not FindReplace.strings.
$ plutil -convert json -o - /System/L*/Priv*/CoreE*/V*/A/R*/en.*/F* | jq -r ".[\"🍟\"]"
fries | french fries | french fry
Solution 2:
It doesn't (any more)
As of MacOS 10.14.4 (released Mar 25, 2019), "freedom fries" is no longer a search keyword for the 🍟 french fries emoji.
I checked before and after upgrading from MacOS 10.14.1 (released Oct 30, 2018) to confirm that this was a recent change.
The removal was plausibly a result of this Stack Exchange thread (posted Nov 2, 2018). I can't find anybody else on the internet drawing attention to this keyword until this question was posted. This question got over nine thousand views and was a Stack Exchange "Hot Network Question", and then I emailed Tim Cook for good measure.
“Freedom Fries” used in Apple’s emoji picker
Date: Fri, 2 Nov 2018 12:39:08 -0400
To: Tim Cook <[email protected]>
From: Jeremy BanksHello Tim,
I just wanted to draw your attention to the fact that the phrase “freedom fries”, a potentially offensive and dated political meme, is one of the search terms used by Apple’s emoji picker. (It’s listed in the CharacterPicker.plist file.)
Please consider removing this keyword.
Thank you.
- An Apple User