Warning: |
GNOME Goal: Unicode usage
Guidelines
Correctly use Unicode characters in translatable strings where they are more appropriate than ASCII characters.
The following Unicode character usage has been agreed upon:
Ellipsis (U+2026, ‘…’) rather than three dots (‘...’) in all UI elements which require further user interaction, such as menu entries and buttons. Ellipses should not be preceded by a space. For example: “Save As…” rather than “Save As …” or “Save As...”.
Ratio symbol (U+2236, ‘∶’) rather than a colon (‘:’) for ratios, such as aspect ratios. For example: “4∶3” rather than “4:3”. Its use as a divider between hours, minutes and seconds in time strings is still under discussion.
Right single quotation mark (U+2019, ‘’’) rather than right straight single quotation mark (‘'’) for apostrophes in any translatable string. For example: “The user’s preferences.” rather than “The user's preferences.”.
En-dash (U+2013, ‘–’) rather than a hyphen (‘-’) for numeric or date ranges. For example, “June–July 1967” rather than “June-July 1967”. If the dash could be misunderstood as subtraction, ‘to’ should be used instead to remove the ambiguity.
Multiplication symbol (U+00D7, ‘×’) rather than an ‘x’ for multiplication and dimensions. For example: “1024×768” rather than “1024x768”.
En-dash (U+2013, ‘–’) rather than a hyphen (‘-’) in longer descriptive strings. The en-dash should be used similarly to a colon – to mark an abrupt change or conclusion to a sentence. For example: “hyphens should not be used – they are too narrow” rather than “hyphens should not be used - they are too narrow”. The en-dash should have a space on either side. Em-dashes should not be used (spaced or unspaced). Parenthetical en-dashes should not be used – UI strings should be rewritten to be simpler if they would otherwise need parenthetical clauses.
Bullet points (U+2022, ‘•’) rather than asterisks or hyphens for lists. These are typically found in dconf key descriptions, where the string is enumerating the possible values for a key. For example: “This is a list:\n • One\n • Two\n • Three” rather than “This is a list:\n - One\n - Two\n - Three”.
The following Unicode character usage is still under discussion:
Single quotation marks (U+2018 and U+2019, ‘‘’ and ‘’’) rather than straight single quotes (‘'’) or backticks (‘`’). These should be used to quote one- or two-word phrases, rather than extended blocks of text (for which double quotation marks should be used). For example: “Press the ‘Submit’ button.” rather than “Press the 'Submit' button.”. These are still under discussion because a rule about when to use single quotes vs. when to use double quotes has to be decided. One notable case where straight single quotes should be used is when quoting program code. Similarly, backticks should only be used if quoting shell commands which use them.
Double quotation marks (U+201C and U+201D, ‘“’ and ‘”’) rather than straight double quotes (‘"’) or backticks (‘`’). See above.
These lists are not conclusive. There should be no reason for a module to not use Unicode characters where appropriate in its translatable strings. If the characters don’t render properly in the default font, the font should be fixed.
Technically, non-ASCII characters need to be octal-escaped in C source code (see http://tecnocode.co.uk/2009/10/01/unicode-in-gnome/ for a discussion). GCC supports compiling C which has Unicode characters directly in its strings, but other C compilers may not. It’s up to individual module maintainers to choose how they want to encode Unicode characters in their modules’ source code.
It is recommended to add translator comments to strings containing Unicode characters in any case. This holds particularly if the Unicode characters are encoded somehow, like \u2236 or \202\322 or ü but also if the Unicode character is used directly, but might be mistaken for an ASCII one, such as ratio vs colon.
Instructions on how to recognize a module affected by this goal. |
Write here how to complete the goal. Might want to include the compose sequences for each of the Unicode characters.
Comments before approval
Add your comments to this goal proposal here |
Status of this goal
Tip: If you choose to work on a module, create the bug report on the GNOME bugzilla for the relevant module, and make it block bug 621639. This way people will know someone already works on it, and won't duplicate the work you're doing. |
State |
Markup |
todo |
<: #ff8080> todo |
patch |
<: #ffcc50> [[GnomeBug:xxxxx|patch]] |
done |
<: #80ff80> [[GnomeBug:xxxxx|done]] |
not needed |
<: #80ff80> not needed |
Above are the states and corresponding markup to update the modules state table below.
Tarball |
Status |
core |
|
at-spi2-core |
to do |
at-spi2-atk |
to do |
dconf |
to do |
evolution-data-server |
to do |
glib-networking |
to do |
gnome-bluetooth |
to do |
gnome-online-accounts |
to do |
gnome-control-center |
to do |
gnome-desktop |
to do |
gnome-icon-theme |
to do |
gnome-icon-theme-extras |
to do |
gnome-icon-theme-symbolic |
to do |
gnome-keyring |
to do |
gnome-menus |
to do |
gnome-packagekit |
to do |
gnome-screensaver |
to do |
gnome-session |
to do |
gnome-settings-daemon |
to do |
gnome-shell |
to do |
gnome-themes-standard |
to do |
gsettings-desktop-schemas |
to do |
gvfs |
to do |
mousetweaks |
to do |
mutter |
to do |
network-manager-applet |
to do |
pulseaudio |
to do |
telepathy-mission-control |
to do |
core-utilities |
|
baobab |
to do |
empathy |
to do |
eog |
to do |
epiphany |
to do |
evince |
to do |
gnome-calculator |
to do |
gnome-contacts |
to do |
gnome-dictionary |
to do |
gnome-disk-utility |
to do |
gnome-font-viewer |
to do |
gnome-screenshot |
to do |
gnome-search-tool |
to do |
gnome-system-log |
to do |
gnome-system-monitor |
to do |
gnome-terminal |
to do |
gucharmap |
to do |
nautilus |
to do |
sushi |
to do |
yelp |
to do |
core-extras |
|
gnome-backgrounds |
to do |
gnome-user-share |
to do |
vino |
to do |
gnome-user-docs |
to do |
core-os-services |
|
accountservice |
to do |
avahi |
to do |
to do |
|
dbus |
to do |
gdm |
to do |
to do |
|
to do |
|
polkit |
to do |
upower |
to do |
core-deps |
|
atk |
to do |
atkmm |
to do |
cairo |
to do |
cairomm |
to do |
cantarell-fonts |
to do |
caribou |
to do |
clutter |
to do |
clutter-gtk |
to do |
clutter-gst |
to do |
cogl |
to do |
dbus-glib |
to do |
dbus-python |
to do |
desktop-file-utils |
to do |
enchant |
to do |
expat |
to do |
farsight2 |
to do |
folks |
to do |
fontconfig |
to do |
gamin |
to do |
gnome-js-common |
to do |
gtksourceview |
to do |
gdk-pixbuf |
to do |
gjs |
to do |
glib |
to do |
glibmm |
to do |
gmime |
to do |
gnome-doc-utils |
to do |
gnome-video-effects |
to do |
gnutls |
to do |
gobject-introspection |
to do |
gst-plugins-base |
to do |
gst-plugins-good |
to do |
gst-plugins-farsight |
to do |
gstreamer |
to do |
gtk+ |
to do |
gtk-doc |
to do |
gtkmm |
to do |
gudev |
to do |
hicolor-icon-theme |
to do |
icon-naming-utils |
to do |
iso-codes |
to do |
itstool |
to do |
intltool |
to do |
java-gnome |
to do |
js185 |
to do |
json-glib |
to do |
libatasmart |
to do |
libcanberra |
to do |
libchamplain |
to do |
libcroco |
to do |
libdaemon |
to do |
libdiscid |
to do |
libgpg-error |
to do |
libgcrypt |
to do |
libgee |
to do |
libgdata |
to do |
libgnome-keyring |
to do |
libgnomekbd |
to do |
libgsf |
to do |
libgtop |
to do |
libgweather |
to do |
libical |
to do |
libmusicbrainz |
to do |
libnice |
to do |
libnotify |
to do |
liboauth |
to do |
libpeas |
to do |
libproxy |
to do |
librest |
to do |
librsvg |
to do |
libsigc++2 |
to do |
libsndfile |
to do |
libsoup |
to do |
libtasn1 |
to do |
libwnck |
to do |
libxklavier |
to do |
libxml2 |
to do |
libxslt |
to do |
mm-common |
to do |
nspr |
to do |
nss |
to do |
p11-kit |
to do |
pango |
to do |
pangomm |
to do |
pixman |
to do |
polkit-gnome |
to do |
poppler |
to do |
py2cairo |
to do |
pygobject |
to do |
rarian |
to do |
seed |
to do |
shared-mime-info |
to do |
sound-theme-freedesktop |
to do |
speex |
to do |
sqlite3 |
to do |
startup-notification |
to do |
telepathy-glib |
to do |
telepathy-logger |
to do |
telepathy-farsight |
to do |
totem-pl-parser |
to do |
tracker |
to do |
vala |
to do |
vte |
to do |
webkit |
to do |
yelp-tools |
to do |
yelp-xsl |
to do |
zenity |
to do |
libnl |
to do |
lcms2 |
to do |
colord |
to do |
apps |
|
accerciser |
to do |
aislerot |
to do |
anjuta |
to do |
brasero |
to do |
cheese |
to do |
devhelp |
to do |
evolution |
to do |
file-roller |
to do |
gedit |
to do |
ghex |
to do |
glade |
to do |
gnome-boxes |
to do |
gnome-clocks |
to do |
gnome-color-manager |
to do |
gnome-devel-docs |
to do |
gnome-documents |
to do |
gnome-chess |
to do |
five-or-more |
to do |
four-in-a-row |
to do |
gnome-klotski |
to do |
gnome-mahjongg |
to do |
gnome-mines |
to do |
gnome-nibbles |
to do |
gnome-robots |
to do |
gnome-sudoku |
to do |
gnome-tetravex |
to do |
iagno |
to do |
lightsoff |
to do |
quadrapassel |
to do |
swell-foop |
to do |
tali |
to do |
gnome-nettool |
to do |
gnome-power-manager |
to do |
nautilus-sendto |
to do |
nemiver |
to do |
orca |
to do |
rygel |
to do |
seahorse |
to do |
totem |
to do |
vinagre |
to do |
d-feet |
to do |