voluntary 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. data/app/helpers/product_helper.rb +5 -3
  2. data/config/initializers/vendor_extensions.rb +1 -0
  3. data/lib/generators/voluntary/install/install_generator.rb +0 -17
  4. data/lib/generators/voluntary/product_dummy/product_dummy_generator.rb +105 -0
  5. data/lib/generators/voluntary/product_dummy/templates/app/controllers/application_controller.rb +3 -0
  6. data/lib/generators/voluntary/product_dummy/templates/app/controllers/home_controller.rb +4 -0
  7. data/lib/generators/voluntary/product_dummy/templates/app/models/ability.rb +49 -0
  8. data/lib/generators/voluntary/product_dummy/templates/app/models/app_config.rb +32 -0
  9. data/lib/generators/voluntary/product_dummy/templates/app/views/home/index.html.erb +0 -0
  10. data/lib/generators/voluntary/product_dummy/templates/app/views/layouts/application.html.erb +50 -0
  11. data/lib/generators/voluntary/product_dummy/templates/config/application.yml +147 -0
  12. data/lib/generators/voluntary/product_dummy/templates/config/cucumber.yml +8 -0
  13. data/lib/generators/voluntary/product_dummy/templates/config/database.example.yml +28 -0
  14. data/lib/generators/voluntary/product_dummy/templates/config/email.example.yml +9 -0
  15. data/lib/generators/voluntary/product_dummy/templates/config/locale_settings.yml +121 -0
  16. data/lib/generators/voluntary/product_dummy/templates/config/main_navigation.rb +262 -0
  17. data/lib/generators/voluntary/product_dummy/templates/config/mongoid.yml +78 -0
  18. data/lib/generators/voluntary/product_dummy/templates/config/routes.rb +3 -0
  19. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/area_behaviour_steps.rb +17 -0
  20. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/area_steps.rb +11 -0
  21. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/candidature_steps.rb +34 -0
  22. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/comment_behaviour_steps.rb +23 -0
  23. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/comment_steps.rb +25 -0
  24. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/email_steps.rb +89 -0
  25. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/factory_steps.rb +120 -0
  26. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/javascript_steps.rb +15 -0
  27. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/navigation_steps.rb +3 -0
  28. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/product_steps.rb +15 -0
  29. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/project_steps.rb +23 -0
  30. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/resources_steps.rb +8 -0
  31. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/session_steps.rb +35 -0
  32. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/state_machines/vacancy_steps.rb +7 -0
  33. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/story_steps.rb +33 -0
  34. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/task_steps.rb +29 -0
  35. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/user_steps.rb +4 -0
  36. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/vacancy_steps.rb +32 -0
  37. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/web_steps.rb +271 -0
  38. data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/wizards/story_steps.rb +15 -0
  39. data/lib/generators/voluntary/product_dummy/templates/features/support/database_cleaner_patches.rb +24 -0
  40. data/lib/generators/voluntary/product_dummy/templates/features/support/env.rb +86 -0
  41. data/lib/generators/voluntary/product_dummy/templates/features/support/integration_sessions_controller.rb +32 -0
  42. data/lib/generators/voluntary/product_dummy/templates/features/support/integration_sessions_form.html.erb +1 -0
  43. data/lib/generators/voluntary/product_dummy/templates/features/support/paths.rb +98 -0
  44. data/lib/generators/voluntary/product_dummy/templates/features/support/selectors.rb +44 -0
  45. data/lib/generators/voluntary/product_dummy/templates/features/support/spork_env +72 -0
  46. data/lib/generators/voluntary/product_dummy/templates/features/support/user_cuke_helpers.rb +78 -0
  47. data/lib/generators/voluntary/product_dummy/templates/spec/support/deferred_garbage_collector.rb +45 -0
  48. data/lib/generators/voluntary/product_dummy/templates/spec/support/devise.rb +3 -0
  49. data/lib/generators/voluntary/product_dummy/templates/spec/support/mongo_database_cleaner.rb +25 -0
  50. data/lib/voluntary/version.rb +1 -1
  51. metadata +212 -168
  52. data/app/views/products/types/text_creation/stories/_form.html.erb +0 -19
  53. data/app/views/products/types/text_creation/stories/_task_fields.html.erb +0 -7
  54. data/lib/vendors/active_model/naming.rb +0 -14
@@ -18,9 +18,11 @@ module ProductHelper
18
18
  if resource && resource.respond_to?(:product) && resource.product
19
19
  path = "products/types/#{directory_for_resource(resource.product)}/#{partial_path}"
20
20
 
21
- if File.exist?("#{Rails.root.to_s}/app/views/#{path}/_#{file_name}.html.erb")
22
- path = [path, file_name].join('/')
23
- else
21
+ path = [path, file_name].join('/')
22
+
23
+ begin
24
+ return render(path, options)
25
+ rescue ActionView::MissingTemplate
24
26
  path = nil
25
27
  end
26
28
  end
@@ -0,0 +1 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../vendor_extensions/active_model/naming')
@@ -7,23 +7,6 @@ module Voluntary
7
7
  ['app', 'config', 'features', 'spec', 'vendor', 'lib'].each do |directory_name|
8
8
  directory directory_name
9
9
  end
10
-
11
- =begin
12
- Dir["#{File.expand_path(File.dirname(__FILE__))}/**/*.*"].each do |file_path|
13
- file_path = file_path.split('/')
14
-
15
- file_path.each do |part|
16
- file_path.shift
17
-
18
- break if part == 'templates'
19
- end
20
-
21
- file_path = file_path.join('/')
22
-
23
- copy_file file_path, file_path
24
- chmod file_path, 0755
25
- end
26
- =end
27
10
  end
28
11
 
29
12
  def gem_dependencies
@@ -0,0 +1,105 @@
1
+ module Voluntary
2
+ module Generators
3
+ class ProductDummyGenerator < ::Rails::Generators::Base
4
+ source_root File.expand_path("../templates", __FILE__)
5
+
6
+ def copy_templates
7
+ ['app', 'config', 'features', 'spec'].each do |directory_name|
8
+ directory directory_name
9
+ end
10
+ end
11
+
12
+ def gem_dependencies
13
+ create_file 'Gemfile', ''
14
+
15
+ add_source "http://rubygems.org"
16
+ add_source "http://gems.github.com"
17
+
18
+ # core
19
+ gem 'bundler', '> 1.1.0'
20
+ gem 'rack-cors', '~> 0.2.4', require: 'rack/cors'
21
+ gem 'thin', '~> 1.3.1', require: false
22
+
23
+ # model
24
+ gem 'settingslogic', git: 'https://github.com/binarylogic/settingslogic.git'
25
+ gem 'acts-as-taggable-on', git: 'https://github.com/mbleigh/acts-as-taggable-on.git'
26
+
27
+ # view
28
+ gem 'acts_as_markup', git: 'git://github.com/vigetlabs/acts_as_markup.git'
29
+ gem 'auto_html', git: 'git://github.com/Applicat/auto_html'
30
+ gem 'recaptcha', require: 'recaptcha/rails'
31
+
32
+ # queue
33
+
34
+ gem 'sinatra', require: false
35
+
36
+ # URIs and HTTP
37
+
38
+ gem 'addressable', '~> 2.2', require: 'addressable/uri'
39
+
40
+ # test
41
+
42
+ gem 'jasmine', git: 'https://github.com/pivotal/jasmine-gem.git'
43
+
44
+ # misc
45
+
46
+ # invalid byte sequence in US-ASCII on production
47
+ # gem 'markerb', git: 'https://github.com/plataformatec/markerb.git'
48
+
49
+ gem_group :development do
50
+ gem 'linecache', '0.46', platforms: :mri_18
51
+ gem 'capistrano', require: false
52
+ gem 'capistrano_colors', require: false
53
+ gem 'capistrano-ext', require: false
54
+ gem 'yard', require: false
55
+ end
56
+
57
+ gem_group :test do
58
+ gem 'cucumber-rails', '1.3.0', require: false
59
+ gem 'rspec-instafail', '>= 0.1.7', require: false
60
+ gem 'webmock', '~> 1.7', require: false
61
+ gem 'simplecov', require: false
62
+ end
63
+
64
+ gem_group :development, :test do
65
+ gem 'debugger', platforms: :mri_19
66
+ gem 'ruby-debug', platforms: :mri_18
67
+ end
68
+
69
+ gem_group :assets do
70
+ gem 'therubyracer', platforms: :ruby
71
+
72
+ # asset_sync is required as needed by application.rb
73
+ gem 'asset_sync', require: nil
74
+ end
75
+
76
+ gem_group :production do
77
+ # dependency nokogiri is incompatible with cucumber-rails
78
+ # gem 'rails_admin', git: 'git://github.com/halida/rails_admin.git'
79
+ gem 'fastercsv', '1.5.5', require: false
80
+ gem 'rack-ssl', require: 'rack/ssl'
81
+ gem 'rack-rewrite', '~> 1.2.1', require: false
82
+
83
+ # analytics
84
+ gem 'rack-google-analytics', require: 'rack/google-analytics'
85
+ gem 'rack-piwik', require: 'rack/piwik', require: false
86
+ end
87
+ end
88
+
89
+ def append_load_seed_data
90
+ create_file 'db/seeds.rb' unless File.exists?(File.join(destination_root, 'db', 'seeds.rb'))
91
+ append_file 'db/seeds.rb', :verbose => true do
92
+ <<-EOH
93
+ delivery_method_was = ActionMailer::Base.delivery_method
94
+ ActionMailer::Base.delivery_method = :test
95
+
96
+ db_seed = VolontariatSeed.new
97
+ db_seed.create_fixtures
98
+
99
+ ActionMailer::Base.delivery_method = delivery_method_was
100
+ EOH
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,3 @@
1
+ class ApplicationController < Voluntary::ApplicationController
2
+ layout Proc.new { |controller| controller.request.xhr? ? 'facebox' : 'application' }
3
+ end
@@ -0,0 +1,4 @@
1
+ class HomeController < ApplicationController
2
+ def index
3
+ end
4
+ end
@@ -0,0 +1,49 @@
1
+ class Ability
2
+ include CanCan::Ability
3
+
4
+ def initialize(user, options = {})
5
+ controller_namespace = options[:controller_namespace] || ""
6
+ project = options[:project] || nil
7
+
8
+ alias_action :index, :show, :autocomplete, :parents, :childs, :tree, to: :read
9
+
10
+ alias_action :new, :create, :edit, :update, :destroy, to: :restful_actions
11
+ alias_action [], to: :admin_actions
12
+ alias_action [], to: :moderation_actions
13
+ alias_action :assign, :reject, :hold_on, to: :supervisor_actions
14
+
15
+ alias_action :restful_actions, :admin_actions, to: :administrate
16
+ alias_action :restful_actions, :moderation_actions, to: :moderate
17
+ alias_action :read, :assign_actions, to: :supervisor
18
+
19
+ can :read, [
20
+ Area, Profession, Product, Project, Vacancy, Candidature, Story, Task, Result, Comment
21
+ ]
22
+ can [:read, :check_name, :check_url, :check_email, :check_email_unblocked], User
23
+ can :show, Page
24
+
25
+ if user.present?
26
+ can :destroy, User, id: user.id
27
+
28
+ can [:new, :create], [Area, Profession, Project, Vacancy, Candidature, Comment]
29
+ can :assign, Task
30
+ can [:update, :cancel, :review], Task, user_id: user.id
31
+
32
+ {
33
+ user_id: [Product, Project, Candidature, Comment, ProjectUser, Result],
34
+ offeror_id: [Vacancy, Story, Task]
35
+ }.each do |attribute, classes|
36
+ can :restful_actions, classes, attribute => user.id
37
+ end
38
+
39
+ can Candidature::EVENTS, Candidature, offeror_id: user.id
40
+ can Vacancy::EVENTS, Vacancy, offeror_id: user.id
41
+ can Story::EVENTS, Story, offeror_id: user.id
42
+ can Task::EVENTS + [:update], Task, offeror_id: user.id
43
+
44
+ if user.name == 'Master'
45
+ can [:manage, :moderate, :administrate, :supervisor], :all
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,32 @@
1
+ # Copyright (c) 2010-2011, Diaspora Inc. This file is
2
+ # licensed under the Affero General Public License version 3 or later. See
3
+ # the COPYRIGHT file.
4
+
5
+ require 'uri'
6
+
7
+ class AppConfig < Settingslogic
8
+ def self.source_file_name
9
+ if ENV['application_yml'].present?
10
+ puts "using remote application.yml"
11
+ return ENV['application_yml']
12
+ end
13
+ config_file = Rails.root.join("config", "application.yml")
14
+ if !File.exists?(config_file) && (Rails.env == 'test' || Rails.env.include?("integration") || EnvironmentConfiguration.heroku?)
15
+ config_file = Rails.root.join("config", "application.yml.example")
16
+ end
17
+ config_file
18
+ end
19
+
20
+ def self.load!
21
+ end
22
+
23
+ def self.setup!
24
+ end
25
+
26
+ source source_file_name
27
+ namespace Rails.env
28
+
29
+ def self.new_relic_app_name
30
+ self[:new_relic_app_name] || self[:pod_uri].host
31
+ end
32
+ end
@@ -0,0 +1,50 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%= t('layout.title') %></title>
5
+ <meta charset='utf-8'>
6
+ <meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
7
+ <%= stylesheet_link_tag 'voluntary/application', media: 'all' %>
8
+ <%= stylesheet_link_tag 'application', media: 'all' %>
9
+ </head>
10
+ <body>
11
+ <%= render 'layouts/shared/navigation' %>
12
+
13
+ <div class="container-fluid">
14
+ <% unless flash.empty? %>
15
+ <div class="row-fluid">
16
+ <div class="span12">
17
+ <%= render 'layouts/shared/flash_messages' %>
18
+ </div>
19
+ </div>
20
+ <% end %>
21
+ <div class="row-fluid">
22
+ <div class="span9">
23
+ <%= breadcrumbs %>
24
+
25
+ <%= yield %>
26
+ </div>
27
+ <div class="span3">
28
+ <%= sidenav %>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ <div class="container-fluid">
33
+ <div class="row-fluid footer">
34
+ <div class="span12">
35
+ <%= footer_navigation %>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ <%= javascript_include_tag 'voluntary/application' %>
40
+ <%= javascript_include_tag 'application' %>
41
+ <%= csrf_meta_tags %>
42
+ <%= javascript_tag do %>
43
+ <%= yield :top_javascript %>
44
+
45
+ $(function() {
46
+ <%= yield(:document_ready) %>
47
+ });
48
+ <% end %>
49
+ </body>
50
+ </html>
@@ -0,0 +1,147 @@
1
+ # Copyright (c) 2010-2011, Diaspora Inc. This file is
2
+ # licensed under the Affero General Public License version 3 or later. See
3
+ # the COPYRIGHT file.
4
+
5
+ defaults: &defaults
6
+
7
+ ######################################################
8
+ # Environment Configuration
9
+ ######################################################
10
+
11
+ ## Set the hostname of the machine you're running Diaspora on, as seen
12
+ ## from the internet. This should be the URL you want to use to
13
+ ## access the pod. So if you plan to reverse proxy it, it should be
14
+ ## the URL the proxy listens on.
15
+ ## DO NOT CHNANGE THIS AFTER INITIAL SETUP
16
+ ## UNLESS YOU KNOW WHAT YOU'RE DOING!
17
+ ## However changing http to https is okay and has no consquences.
18
+ ## If you do change it you have to start over as it's hardcoded into
19
+ ## the database.
20
+ pod_url: "http://localhost:3000/"
21
+
22
+ ## Setting the bundle of certificate authorities (CA) certificates.
23
+ ## This is operating system specific.
24
+ ## Examples, uncomment one or add your own:
25
+ ca_file: '/etc/pki/tls/certs/ca-bundle.crt'
26
+
27
+ ## Name of your pod
28
+ pod_name: "Volontari.at*"
29
+
30
+ ######################################################
31
+ # Email Configuration
32
+ ######################################################
33
+
34
+ ## First you need to enable it ;)
35
+ mailer_on: false
36
+
37
+ ## Sender address used in mail send by Diaspora
38
+ #sender_address: 'no-reply@example.org'
39
+
40
+ ## This selects which mailer should be used. Take 'smtp' for a smtp
41
+ ## connection, 'sendmail' to use the sendmail binary or
42
+ ## 'messagebus' to use the messagebus service.
43
+ mailer_method: 'smtp'
44
+
45
+ # Address/port to smtp server handling outgoing mail.
46
+ smtp_address: 'smtp.example.com'
47
+ smtp_port: '587'
48
+
49
+ #API key if you are using message bus
50
+ message_bus_api_key: ''
51
+
52
+ # The path to the sendmail binary. Ignored if mailer_method is not set to sendmail
53
+ sendmail_location: '/usr/sbin/sendmail'
54
+
55
+ # Set this to true if you want to use exim and sendmail
56
+ sendmail_exim_fix: false
57
+
58
+ # Authentication required to send mail. Use one of 'plain',
59
+ # 'login' or 'cram_md5'. Use 'none' if server does not support
60
+ # authentication
61
+ smtp_authentication: 'plain'
62
+
63
+ # Automatically enable TLS? Ignored if smtp_authentication is set to none
64
+ smtp_starttls_auto: true
65
+
66
+ # OpenSSL verify mode used when connecting to a SMTP server with TLS.
67
+ # Set this to none if you have a self signed certificate, keep it empty (not '') for the default
68
+ # Possible values: none, peer, client_once, fail_if_no_peer_cert
69
+ smtp_openssl_verify_mode:
70
+
71
+ # Domain of smtp server.
72
+ # This should match the common name of the certificate
73
+ # the SMTP server sends. If he sends one
74
+ smtp_domain: 'example.com'
75
+
76
+ # Credentials to log in to the SMTP server - may be necessary if
77
+ # smtp_authentication is not 'none'
78
+ smtp_username: 'smtp_username'
79
+ smtp_password: 'secret'
80
+
81
+ # Sender address in Diaspora's outgoing mail.
82
+ smtp_sender_address: 'no-reply@volontari.at'
83
+
84
+ ######################################################
85
+ # Social Service Configuration
86
+ ######################################################
87
+
88
+ ## OAuth credentials for Facebook:
89
+ facebook_app_id: ''
90
+ facebook_app_secret: ''
91
+
92
+ #this will be the namespace for your object, it should be configured in your FB app
93
+ open_graph_namespace: ''
94
+
95
+
96
+ ## OAuth credentials for Twitter:
97
+ twitter_consumer_key: ''
98
+ twitter_consumer_secret: ''
99
+
100
+ ## OAuth credentials for Tumblr
101
+ tumblr_consumer_key: ''
102
+ tumblr_consumer_secret: ''
103
+
104
+
105
+ ######################################################
106
+ # Debugging Service Tool Integration
107
+ ######################################################
108
+
109
+ ## Resque is the background processing sysem used by Diaspora
110
+ ## Resque web is an admin tool for it. This settings decides wheter
111
+ ## or not to inline it into Diaspora.
112
+ mount_resque_web: true
113
+
114
+ ## If you use Airbrake provide your API key here:
115
+ airbrake_api_key: ''
116
+
117
+ ## If you use NewRelic provide your credentials here:
118
+ NEW_RELIC_LICENSE_KEY: ''
119
+ new_relic_app_name: ''
120
+
121
+ ######################################################
122
+ # Overrides
123
+ ######################################################
124
+
125
+ development:
126
+ <<: *defaults
127
+
128
+ production:
129
+ <<: *defaults
130
+
131
+ ##################################################
132
+ # FEDERATION LOGGER ##############################
133
+ # Do not touch unless you know what you're doing!#
134
+ ##################################################
135
+
136
+ test:
137
+ <<: *defaults
138
+ pod_url: "http://localhost:9887/"
139
+ socket_port: 8081
140
+
141
+ integration1:
142
+ <<: *defaults
143
+ pod_url: "http://localhost:3001/"
144
+
145
+ integration2:
146
+ <<: *defaults
147
+ pod_url: "http://localhost:3002/"
@@ -0,0 +1,8 @@
1
+ <%
2
+ rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
+ rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
4
+ std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
5
+ %>
6
+ default: <%= std_opts %> features
7
+ wip: --tags @wip:3 --wip features
8
+ rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
@@ -0,0 +1,28 @@
1
+ development:
2
+ adapter: postgresql
3
+ database: volontariat_development
4
+ encoding: unicode
5
+ username: root
6
+ password:
7
+ encoding: unicode
8
+
9
+ test: &TEST
10
+ adapter: postgresql
11
+ encoding: unicode
12
+ database: volontariat_test
13
+ pool: 5
14
+ username: root
15
+ password:
16
+
17
+ production:
18
+ adapter: postgresql
19
+ encoding: unicode
20
+ database: volontariat_production
21
+ encoding: utf8
22
+ pool: 5
23
+ host: localhost
24
+ username: volontariat
25
+ password:
26
+
27
+ cucumber:
28
+ <<: *TEST
@@ -0,0 +1,9 @@
1
+ production:
2
+ address: smtp.gmail.com
3
+ port: 587
4
+ authentication: plain
5
+ user_name: xxx
6
+ password: yyy
7
+ enable_starttls_auto: true
8
+ host: your_domain.com
9
+ openssl_verify_mode: none
@@ -0,0 +1,121 @@
1
+ default: "en"
2
+
3
+ available:
4
+ en: "English"
5
+
6
+ other:
7
+ ar: "العربية"
8
+ art-nvi: "Na'vi"
9
+ bg: "български език"
10
+ br: "Brezhoneg"
11
+ ca: "Català"
12
+ cs: "Čeština"
13
+ cy: "Cymraeg"
14
+ da: "Dansk"
15
+ de: "Deutsch"
16
+ de_formal: "Deutsch (Sie)"
17
+ el: "Ελληνικά"
18
+ en_1337: "3n6l15h (English 1337)"
19
+ en_pirate: "English (Pirate)"
20
+ en_shaw: "𐑦𐑙𐑤𐑦𐑖"
21
+ eo: "Esperanto"
22
+ es: "Castellano"
23
+ es-AR: "Castellano - Argentina"
24
+ es-CL: "Castellano - Chile"
25
+ es-VE: "Castellano - Venezuela"
26
+ es-MX: "Español, México"
27
+ et: "Eesti"
28
+ eu: "Euskara"
29
+ fi: "Suomi"
30
+ fil: "Filipino"
31
+ fr: "Français"
32
+ ga: "Gaeilge"
33
+ gl: "Galego"
34
+ he: "עברית"
35
+ hu: "magyar nyelv"
36
+ ia: "Interlingua"
37
+ id: "Bahasa Indonesia"
38
+ is: "íslenska"
39
+ it: "Italiano"
40
+ ja: "日本語"
41
+ ka: "ქართული"
42
+ ko: "한국어"
43
+ lt: "Lietuviškai"
44
+ mk: "македонски"
45
+ ml: "മലയാളം"
46
+ ms: "بهاس ملايو‎"
47
+ nb: "Norske"
48
+ nl: "Nederlands"
49
+ nn: "Nynorsk"
50
+ pa: "ਪੰਜਾਬੀ"
51
+ pl: "polski"
52
+ pt-PT: "Português (Portugal)"
53
+ pt-BR: "Português (Brasil)"
54
+ ro: "Română"
55
+ ru: "Русский"
56
+ si: "සිංහල"
57
+ sk: "Slovenčina"
58
+ sl: "Slovenščina"
59
+ sq: "gjuha shqipe"
60
+ sr: "српски језик"
61
+ sv: "Svenska"
62
+ te: "తెలుగు"
63
+ tr: "Türk"
64
+ uk: "украї́нська мо́ва"
65
+ ur-PK: "اُردو (پاکستان)"
66
+ vi: "Tiếng Việt"
67
+ zh-CN: "中文"
68
+ zh-TW: "台灣中文"
69
+
70
+
71
+ fallbacks:
72
+ en-GB:
73
+ - "en"
74
+ en-US:
75
+ - "en"
76
+ en_shaw:
77
+ - "en"
78
+ - "en-GB"
79
+ - "en-US"
80
+ en_pirate:
81
+ - "en"
82
+ - "en-GB"
83
+ - "en-US"
84
+ en_1337:
85
+ - "en"
86
+ - "en-GB"
87
+ - "en-US"
88
+ sv:
89
+ - "sv-SE"
90
+ he:
91
+ - "he-IL"
92
+ es-AR:
93
+ - "es"
94
+ es-CL:
95
+ - "es"
96
+ es-MX:
97
+ - "es"
98
+ es-VE:
99
+ - "es"
100
+ gl:
101
+ - "gl-ES"
102
+ zh:
103
+ - "zh-CN"
104
+ - "zh-TW"
105
+ ur-PK:
106
+ - "ur"
107
+ de_formal:
108
+ - "de"
109
+ art_nvi:
110
+ - "art-nvi"
111
+ pt-BR:
112
+ - "pt"
113
+ pt-PT:
114
+ - "pt"
115
+
116
+ rtl:
117
+ - "ar"
118
+ - "he"
119
+ - "ur"
120
+ - "ur-PK"
121
+ - "ms"