From e6febcd3e7ba98e0e6bfc178fe6c10e4d6ab3468 Mon Sep 17 00:00:00 2001 From: AntonioTerceiro Date: Mon, 21 Jul 2008 22:48:47 +0000 Subject: [PATCH] ActionItem523: adding a terminology backend implementation --- app/views/shared/user_menu.rhtml | 2 +- lib/noosfero.rb | 12 ++++++++++++ lib/noosfero/terminology.rb | 25 +++++++++++++++++++++++++ lib/zen3_terminology.rb | 12 ++++++++++++ test/unit/noosfero_test.rb | 9 +++++++++ 5 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 lib/noosfero/terminology.rb create mode 100644 lib/zen3_terminology.rb 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