# localization.py -- Code to manage/help portage localization.
# Copyright 2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$


# We define this to make the transition easier for us.
def _(mystr):
	return mystr


def localization_example():
	# Dict references allow translators to rearrange word order.
	print _("You can use this string for translating.")
	print _("Strings can be formatted with %(mystr)s like this.") % {"mystr": "VALUES"}

	a_value = "value.of.a"
	b_value = 123
	c_value = [1,2,3,4]
	print _("A: %(a)s -- B: %(b)s -- C: %(c)s") % {"a":a_value,"b":b_value,"c":c_value}

