/!\ Warning:
This is only a proposal at this time, and not approved for project-wide application.
This should not be applied before being officially turned into a GNOME Goal!

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.

{i} 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

{i} Add your comments to this goal proposal here

Status of this goal

{i} 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

ConsoleKit

to do

dbus

to do

gdm

to do

NetworkManager

to do

PackageKit

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

Initiatives/GnomeGoals/UnicodeUsage (last edited 2013-12-18 13:44:46 by LuisMenina)