diff --git a/app/views/shared/user_menu.rhtml b/app/views/shared/user_menu.rhtml
index 72e3135..71b285f 100644
--- a/app/views/shared/user_menu.rhtml
+++ b/app/views/shared/user_menu.rhtml
@@ -17,7 +17,7 @@
<%= _('My Home Page') %>
+ ><%= Noosfero.term(N_('My Home Page')) %>
diff --git a/lib/noosfero.rb b/lib/noosfero.rb
index b7f31a7..0762da4 100644
--- a/lib/noosfero.rb
+++ b/lib/noosfero.rb
@@ -1,3 +1,5 @@
+require 'gettext'
+
module Noosfero
PROJECT = 'noosfero'
VERSION = '0.11.0'
@@ -30,6 +32,16 @@ module Noosfero
end
end
+ def self.term(t)
+ gettext(self.terminology.get(t))
+ end
+ def self.terminology
+ @terminology ||= Noosfero::Terminology::Default.new
+ end
+ def self.terminology=(term)
+ @terminology = term
+ end
+
end
require 'noosfero/constants'
diff --git a/lib/noosfero/terminology.rb b/lib/noosfero/terminology.rb
new file mode 100644
index 0000000..23c950e
--- /dev/null
+++ b/lib/noosfero/terminology.rb
@@ -0,0 +1,25 @@
+module Noosfero
+ class Terminology
+
+ def get(x)
+ raise NotImplementedError
+ end
+
+ # the default terminology. Just returns the same message as is.
+ class Default
+ def get(x)
+ x
+ end
+ end
+
+ class Custom
+ def initialize(hash)
+ @messages = hash
+ end
+ def get(x)
+ @messages[x] || x
+ end
+ end
+
+ end
+end
diff --git a/lib/zen3_terminology.rb b/lib/zen3_terminology.rb
new file mode 100644
index 0000000..1a5d772
--- /dev/null
+++ b/lib/zen3_terminology.rb
@@ -0,0 +1,12 @@
+require 'noosfero/terminology'
+
+class Zen3Terminology < Noosfero::Terminology::Custom
+ include GetText
+
+ def initialize
+ super({
+ 'My Home Page' => N_('My ePortfolio'),
+ })
+ end
+
+end
diff --git a/test/unit/noosfero_test.rb b/test/unit/noosfero_test.rb
index 09827b8..9d1e478 100644
--- a/test/unit/noosfero_test.rb
+++ b/test/unit/noosfero_test.rb
@@ -31,4 +31,13 @@ class NoosferoTest < Test::Unit::TestCase
assert_match /^#{Noosfero.identifier_format}$/, 'with.dot'
end
+ should 'delegate terminology' do
+ Noosfero.terminology.expects(:get).with('lalala').returns('lelele')
+ assert_equal 'lelele', Noosfero.term('lalala')
+ end
+
+ should 'use default terminology by default' do
+ assert_equal 'lalalalala', Noosfero.term('lalalalala')
+ end
+
end
--
libgit2 0.21.2