voluntary 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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"