From 21b6c8fe91fa8ae887d8dea1a7bf4b2442a5314e Mon Sep 17 00:00:00 2001 From: Seyamack Afzali Date: Wed, 6 Dec 2023 19:21:54 -0600 Subject: [PATCH 01/13] initial config for spanish translation --- config/application.rb | 2 +- config/initializers/translation.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/application.rb b/config/application.rb index 01c9e524f0..e65109a492 100644 --- a/config/application.rb +++ b/config/application.rb @@ -45,7 +45,7 @@ class Application < Rails::Application config.i18n.load_path += Dir[Rails.root.join("config", "locales", "**", "*.{rb,yml}").to_s] config.i18n.enforce_available_locales = false config.i18n.default_locale = :en - config.i18n.available_locales = %i[en nl nb] + config.i18n.available_locales = %i[en nl nb es] config.i18n.fallbacks = {"en-US": :en, "en-GB": :en} config.middleware.use Rack::Throttle::Minute, diff --git a/config/initializers/translation.rb b/config/initializers/translation.rb index 2b7000c184..0beca27cfa 100644 --- a/config/initializers/translation.rb +++ b/config/initializers/translation.rb @@ -3,7 +3,7 @@ TranslationIO.configure do |config| config.api_key = ENV["TRANSLATION_IO_API_KEY"] config.source_locale = "en" - config.target_locales = %w[nl nb] + config.target_locales = %w[nl nb es] # Uncomment this if you don't want to use gettext config.disable_gettext = true From 71ac9ad57b4e923d0262646872d88613b83fdf2b Mon Sep 17 00:00:00 2001 From: Seyamack Afzali Date: Wed, 6 Dec 2023 19:35:56 -0600 Subject: [PATCH 02/13] added locale request tests for spanish --- spec/requests/locale_detection_request_spec.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/spec/requests/locale_detection_request_spec.rb b/spec/requests/locale_detection_request_spec.rb index 838069a6ff..f2fbfe7ca2 100644 --- a/spec/requests/locale_detection_request_spec.rb +++ b/spec/requests/locale_detection_request_spec.rb @@ -35,6 +35,10 @@ current_user.update(preferred_language: :nb) get "/" expect(response.body).to match(/sykkelregistrering/i) + + current_user.update(preferred_language: :es) + get "/" + expect(response.body).to match(/registro de bicicletas/i) end end @@ -46,6 +50,8 @@ expect(response.body).to match(/fietsregistratie/i) get "/", params: {locale: :nb} expect(response.body).to match(/sykkelregistrering/i) + get "/", params: {locale: :nb} + expect(response.body).to match(/registro de bicicletas/i) end end @@ -69,6 +75,9 @@ get "/", params: {}, headers: {"HTTP_ACCEPT_LANGUAGE" => "nb,en;q=0.9"} expect(response.body).to match(/sykkelregistrering/i) + + get "/", params: {}, headers: {"HTTP_ACCEPT_LANGUAGE" => "nb,en;q=0.9"} + expect(response.body).to match(/registro de bicicletas/i) end end From f5127772ebfe34e68861aadfa6c0212527d6279e Mon Sep 17 00:00:00 2001 From: Seth Herr Date: Thu, 7 Dec 2023 09:22:51 -0800 Subject: [PATCH 03/13] sync --- config/locales/.translation_io | 2 +- config/locales/localization.es.yml | 88 + config/locales/translation.es.yml | 4521 ++++++++++++++++++++++++++++ 3 files changed, 4610 insertions(+), 1 deletion(-) create mode 100644 config/locales/localization.es.yml create mode 100644 config/locales/translation.es.yml diff --git a/config/locales/.translation_io b/config/locales/.translation_io index 1bfac26e14..ccbb520484 100644 --- a/config/locales/.translation_io +++ b/config/locales/.translation_io @@ -1,2 +1,2 @@ --- -timestamp: 1701830459 +timestamp: 1701969724 diff --git a/config/locales/localization.es.yml b/config/locales/localization.es.yml new file mode 100644 index 0000000000..61d6c842ff --- /dev/null +++ b/config/locales/localization.es.yml @@ -0,0 +1,88 @@ +# THIS FILE CONTAINS LOCALIZATION KEYS : date and number formats, number precisions, +# number separators and all non-textual values depending on the language. +# These values must not reach the translator, so they are separated in this file. +# +# More info here: https://translation.io/blog/gettext-is-better-than-rails-i18n#localization +# +# You can edit and/or add new localization keys here, they won't be touched by Translation.io. +# +# If you want to add a new localization key prefix, use the option described here: +# https://github.com/translation/rails#custom-localization-key-prefixes +# +--- +es: + date: + formats: + default: "%-d/%-m/%Y" + long: "%-d de %B de %Y" + short: "%-d de %b" + order: + - :day + - :month + - :year + number: + currency: + format: + delimiter: "." + format: "%n %u" + precision: 2 + separator: "," + significant: false + strip_insignificant_zeros: false + unit: "€" + format: + delimiter: "." + precision: 3 + round_mode: default + separator: "," + significant: false + strip_insignificant_zeros: false + human: + decimal_units: + format: "%n %u" + units: + unit: '' + format: + delimiter: '' + precision: 3 + significant: true + strip_insignificant_zeros: true + storage_units: + format: "%n %u" + percentage: + format: + delimiter: '' + format: "%n %" + precision: 1 + precision: + format: + delimiter: '' + support: + array: + last_word_connector: " y " + two_words_connector: " y " + words_connector: ", " + time: + formats: + default: "%A, %-d de %B de %Y %H:%M:%S %z" + long: "%-d de %B de %Y %H:%M" + short: "%-d de %b %H:%M" + i18n: + transliterate: + rule: + á: a + é: e + í: i + ó: o + ú: u + ü: u + ñ: "n" + Á: A + É: E + Í: I + Ó: O + Ú: U + Ü: U + Ñ: N + spree: + say_no: false diff --git a/config/locales/translation.es.yml b/config/locales/translation.es.yml new file mode 100644 index 0000000000..04ad5c25ca --- /dev/null +++ b/config/locales/translation.es.yml @@ -0,0 +1,4521 @@ +# WARNING. THIS FILE WAS AUTO-GENERATED BY THE TRANSLATION GEM. +# IF YOU UPDATE IT, YOUR CHANGES WILL BE LOST AT THE NEXT SYNC. +# +# To update this file, use this translation interface: +# https://translation.io/bikeindex/bike_index/es +# +--- +es: + gflash: + titles: + warning: + error: + notice: + progress: + success: + date: + day_names: + - domingo + - lunes + - martes + - miércoles + - jueves + - viernes + - sábado + abbr_day_names: + - dom + - lun + - mar + - mié + - jue + - vie + - sáb + month_names: + - + - enero + - febrero + - marzo + - abril + - mayo + - junio + - julio + - agosto + - septiembre + - octubre + - noviembre + - diciembre + abbr_month_names: + - + - ene + - feb + - mar + - abr + - may + - jun + - jul + - ago + - sep + - oct + - nov + - dic + time: + am: am + pm: pm + number: + human: + storage_units: + units: + byte: + one: Byte + other: Bytes + kb: KB + mb: MB + gb: GB + tb: TB + pb: PB + eb: EB + decimal_units: + units: + thousand: mil + million: + billion: mil millones + trillion: + quadrillion: mil billones + errors: + format: "%{attribute} %{message}" + messages: + model_invalid: 'La validación falló: %{errors}' + inclusion: no está incluido en la lista + exclusion: está reservado + invalid: no es válido + confirmation: no coincide + accepted: debe ser aceptado + empty: no puede estar vacío + blank: no puede estar en blanco + present: debe estar en blanco + too_long: + one: es demasiado largo (1 carácter máximo) + other: es demasiado largo (%{count} caracteres máximo) + too_short: + one: es demasiado corto (1 carácter mínimo) + other: es demasiado corto (%{count} caracteres mínimo) + wrong_length: + one: no tiene la longitud correcta (1 carácter exactos) + other: no tiene la longitud correcta (%{count} caracteres exactos) + not_a_number: no es un número + not_an_integer: debe ser un entero + greater_than: debe ser mayor que %{count} + greater_than_or_equal_to: debe ser mayor que o igual a %{count} + equal_to: debe ser igual a %{count} + less_than: debe ser menor que %{count} + less_than_or_equal_to: debe ser menor que o igual a %{count} + other_than: debe ser distinto de %{count} + odd: debe ser impar + even: debe ser par + required: debe existir + taken: ya está en uso + carrierwave_processing_error: + carrierwave_integrity_error: + carrierwave_download_error: + extension_white_list_error: + extension_black_list_error: + rmagick_processing_error: + mime_types_processing_error: + mini_magick_processing_error: + in: + invalid_currency: + record_invalid: 'La validación falló: %{errors}' + template: + body: 'Se encontraron problemas con los siguientes campos:' + header: + one: No se pudo guardar este/a %{model} porque se encontró 1 error + other: No se pudo guardar este/a %{model} porque se encontraron %{count} errores + bad_request: + explanation: + send_me_back: + not_found: + explanation: + send_me_back: + server_error: + explanation: + send_me_back: + unauthorized: + explanation: + send_me_back: + unprocessable_entity: + contact: + contact_email: + explanation_html: + send_me_back: + activerecord: + errors: + messages: + record_invalid: 'La validación falló: %{errors}' + restrict_dependent_destroy: + has_one: No se puede eliminar el registro porque existe un %{record} dependiente + has_many: No se puede eliminar el registro porque existen %{record} dependientes + access_denied: El propietario del recurso o el servidor de autorización han + denegado la petición. + admin_authenticator_not_configured: Access to admin panel is forbidden due + to Doorkeeper.configure.admin_authenticator being unconfigured. + credential_flow_not_configured: El flujo de credenciales del propietario del + recurso ha fallado porque Doorkeeper.configure.resource_owner_from_credentials + no está configurado. + invalid_client: La autenticación del cliente ha fallado por cliente desconocido, + cliente no autenticado, o método de autenticación incompatible. + invalid_code_challenge_method: The code challenge method must be plain or + S256. + invalid_grant: La autorización proporcionada no es válida, ha expirado, se + ha revocado, no coincide con la URI de redirección utilizada en la petición + de autorización, o ha sido solicitada por otro cliente. + invalid_redirect_uri: La uri de redirección no es valida. + invalid_request: + missing_param: 'Missing required parameter: %{value}.' + request_not_authorized: Request need to be authorized. Required parameter + for authorizing request is missing or invalid. + unknown: La petición no tiene un parámetro obligatorio, incluye un valor + de parámetro incompatible, o tiene un formato incorrecto. + invalid_scope: El scope solicitado no es válido, es desconocido, o tiene un + formato incorrecto. + invalid_token: + expired: El token de acceso ha expirado + revoked: El token de acceso ha sido revocado + unknown: El token de acceso es inválido + resource_owner_authenticator_not_configured: La búsqueda del propietario del + recurso ha fallado porque Doorkeeper.configure.resource_owner_authenticator + no está configurado. + revoke: + unauthorized: No tiene autorización para revocar este token + server_error: El servidor de autorización ha encontrado una condición inesperada + que le ha impedido completar la petición. + temporarily_unavailable: El servidor de autorización no ha podido manejar + la petición por una sobrecarga temporal o por mantenimiento del servidor. + unauthorized_client: El cliente no tiene autorización para realizar esta petición + utilizando este método. + unsupported_grant_type: El tipo de autorización no está soportada por el servidor + de autorización. + unsupported_response_mode: + unsupported_response_type: El servidor de autorización no soporta este tipo + de respuesta. + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: no puede contener un fragmento. + invalid_uri: debe ser una URI válida. + unspecified_scheme: debe especificar un esquema. + relative_uri: debe ser una URI absoluta. + secured_uri: debe ser una URI HTTPS/SSL. + forbidden_uri: está prohibido por el servidor. + scopes: + not_match_configured: doesn't match configured on the server. + bike: + not_found: + bike_sticker: + not_found: + unauthorized_to_claim: + export: + required: + impound_record: + user_not_authorized: + manufacturer: + cannot_match_a_color_name: + organization_message: + latlon_required: + required: + parking_notification: + address_required: + payment: + requires_email_or_org: + recovery_display: + quote_too_long: + theft_alert: + must_be_later_than_start_time: + must_be_present: + user: + email_already_exists: + not_an_available_language: + organization: + duplicate_short_name: + attributes: + doorkeeper/application: + name: Nombre + redirect_uri: URI de redirección + scopes: Ámbitos + access_grants: + access_tokens: + authorized_applications: + authorized_tokens: + can_send_stolen_notifications: + is_internal: + owner_type: + secret: Secret + uid: + ad: + body: + image: + live: + target_url: + title: + ambassador: + ambassador_task_assignments: + ambassador_tasks: + auth_token: + avatar: + banned: + can_send_many_stolen_notifications: + city: + confirmation_token: Código de confirmación + confirmed: + created_bikes: + created_ownerships: + creation_states: + current_ownerships: + currently_owned_bikes: + description: + developer: + email: Email + integrations: + last_login_at: + last_login_ip: + latitude: + locks: + longitude: + magic_link_token: + memberships: + my_bikes_hash: + name: Nombre + notification_newsletters: + notification_unstolen: + oauth_applications: + organization_embeds: + organizations: + owned_bikes: + ownerships: + partner_data: + password: Contraseña + password_digest: + password_reset_token: + payments: + phone: + preferred_language: + received_stolen_notifications: + sent_memberships: + sent_stolen_notifications: + show_bikes: + show_phone: + show_twitter: + show_website: + street: + subscriptions: + superuser: + terms_of_service: + title: + twitter: + user_emails: + username: + vendor_terms_of_service: + website: + when_vendor_terms_of_service: + zipcode: + ambassador_task: + ambassador_task_assignments: + ambassadors: + description: + title: + ambassador_task_assignment: + completed_at: + b_param: + bike_errors: + bike_title: + email: Email + id_token: + image: + image_processed: + image_tmp: + old_params: + origin: + params: + bike: + abandoned: + all_description: + approved_stolen: + b_params: + belt_drive: + bike_organizations: + bike_stickers: + cached_data: + can_edit_claimed_bike_organizations: + can_edit_claimed_organizations: + coaster_brake: + components: + creation_states: + cycle_type: + description: + duplicate_bike_groups: + example: + extra_registration_number: + frame_material: + frame_model: + frame_size: + frame_size_number: + frame_size_unit: + front_tire_narrow: + handlebar_type: + hidden: + is_for_sale: + listing_order: + made_without_serial: + manufacturer_other: + mnfg_name: + name: Nombre + normalized_serial_segments: + number_of_seats: + organizations: + owner_email: + ownerships: + pdf: + propulsion_type: + public_images: + rear_tire_narrow: + recovered_records: + registered_new: + serial_normalized: + serial_number: + stock_photo_url: + stolen: + stolen_notifications: + stolen_records: + thumb_path: + video_embed: + year: Año + zipcode: + bike_organization: + can_not_edit_claimed: + deleted_at: + bike_sticker: + claimed_at: + code: + code_integer: + code_prefix: + kind: + bike_sticker_batch: + bike_stickers: + code_number_length: + notes: + blog: + body: + body_abbr: + description_abbr: + index_image: + index_image_lg: + is_listicle: + listicles: + old_title_slug: + public_images: + published: + published_at: + tags: + title: + title_slug: + bulk_import: + bikes: + creation_states: + file: + import_errors: + is_ascend: + no_notify: + progress: + cgroup: + ctypes: + description: + name: Nombre + slug: + color: + bikes: + display: + name: Nombre + paints: + priority: + component: + component_model: + ctype_other: + description: + front: + is_stock: + manufacturer_other: + rear: + serial_number: + year: Año + country: + iso: + locations: + name: Nombre + stolen_records: + creation_state: + is_bulk: + is_new: + is_pos: + origin: + pos_kind: + ctype: + components: + has_multiple: + image: + name: Nombre + secondary_name: + slug: + customer_contact: + body: + contact_type: + creator_email: + info_hash: + kind: + title: + user_email: + doorkeeper/access_grant: + expires_in: + redirect_uri: + revoked_at: + scopes: Ámbitos + token: + doorkeeper/access_token: + expires_in: + refresh_token: + revoked_at: + scopes: Ámbitos + token: + duplicate_bike_group: + added_bike_at: + bikes: + ignore: + normalized_serial_segments: + export: + file: + file_format: + kind: + options: + progress: + rows: + feedback: + body: + email: Email + feedback_hash: + feedback_type: + name: Nombre + title: + flipper/adapters/active_record/feature: + key: + flipper/adapters/active_record/gate: + feature_key: + key: + value: + front_gear_type: + bikes: + count: + internal: + name: Nombre + slug: + standard: + integration: + access_token: + information: + provider_name: + invoice: + amount_due_cents: + amount_paid_cents: + force_active: + invoice_organization_features: + is_active: + notes: + organization_features: + payments: + subscription_end_at: + subscription_start_at: + listicle: + body: + body_html: + crop_top_offset: + image: + image_credits: + image_credits_html: + image_height: + image_width: + list_order: + title: + location: + bikes: + city: + deleted_at: + email: Email + latitude: + longitude: + name: Nombre + phone: + shown: + street: + zipcode: + lock: + combination: + has_combination: + has_key: + key_serial: + lock_model: + manufacturer_other: + notes: + lock_type: + name: Nombre + slug: + mail_snippet: + address: + body: + is_enabled: + is_location_triggered: + kind: + latitude: + longitude: + name: Nombre + proximity_radius: + public_images: + manufacturer: + bikes: + close_year: + components: + description: + frame_maker: + locks: + logo: + logo_source: + name: Nombre + notes: + open_year: + paints: + slug: + total_years_active: + website: + membership: + claimed_at: + deleted_at: + email_invitation_sent_at: + invited_email: + role: + normalized_serial_segment: + segment: + organization: + access_token: + api_access_approved: + approved: + ascend_name: + avatar: + b_params: + bike_organizations: + bike_stickers: + bikes: + child_organizations: + created_bikes: + creation_states: + deleted_at: + enabled_feature_slugs: + invoices: + is_paid: + kind: + landing_html: + locations: + lock_show_on_map: + mail_snippets: + memberships: + name: Nombre + payments: + pos_kind: + previous_slug: + public_images: + recovered_records: + registration_field_labels: + short_name: + show_on_map: + slug: + users: + website: + organization_feature: + amount_cents: + description: + details_link: + feature_slugs: + invoice_organization_features: + invoices: + kind: + name: Nombre + ownership: + claimed: + current: + example: + owner_email: + send_email: + user_hidden: + paint: + bikes: + name: Nombre + payment: + amount_cents: + email: Email + first_payment_date: + is_current: + is_payment: + is_recurring: + kind: + last_payment_date: + public_image: + external_image_url: + image: + imageable_type: + is_private: + listing_order: + name: Nombre + rear_gear_type: + bikes: + count: + internal: + name: Nombre + slug: + standard: + recovery_display: + image: + link: + quote: + quote_by: + recovered_at: + state: + abbreviation: + locations: + name: Nombre + stolen_records: + stolen_notification: + message: + receiver_email: + reference_url: + send_dates: + subject: + stolen_record: + approved: + can_share_recovery: + city: + create_open311: + current: + date_stolen: + estimated_value: + index_helped_recovery: + latitude: + lock_defeat_description: + locking_description: + longitude: + phone: + phone_for_everyone: + phone_for_police: + phone_for_shops: + phone_for_users: + police_report_department: + police_report_number: + proof_of_ownership: + receive_notifications: + recovered_at: + recovered_description: + recovery_display_status: + recovery_link_token: + recovery_posted: + recovery_share: + recovery_tweet: + secondary_phone: + street: + theft_alerts: + theft_description: + time: + tsved_at: + zipcode: + theft_alert: + end_at: + notes: + start_at: + status: + theft_alert_plan: + active: + amount_cents: + description: + duration_days: + name: Nombre + stolen_records: + theft_alerts: + views: + tweet: + alignment: + body_html: + image: + public_images: + twitter_response: + user: + ambassador_task_assignments: + ambassador_tasks: + auth_token: + avatar: + banned: + can_send_many_stolen_notifications: + city: + confirmation_token: Código de confirmación + confirmed: + created_bikes: + created_ownerships: + creation_states: + current_ownerships: + currently_owned_bikes: + description: + developer: + email: Email + integrations: + last_login_at: + last_login_ip: + latitude: + locks: + longitude: + magic_link_token: + memberships: + my_bikes_hash: + name: Nombre + notification_newsletters: + notification_unstolen: + oauth_applications: + organization_embeds: + organizations: + owned_bikes: + ownerships: + partner_data: + password: Contraseña + password_digest: + password_reset_token: + payments: + phone: + preferred_language: + received_stolen_notifications: + sent_memberships: + sent_stolen_notifications: + show_bikes: + show_phone: + show_twitter: + show_website: + street: + subscriptions: + superuser: + terms_of_service: + title: + twitter: + user_emails: + username: + vendor_terms_of_service: + website: + when_vendor_terms_of_service: + zipcode: + user_email: + confirmation_token: Código de confirmación + email: Email + wheel_size: + bikes: + description: + iso_bsd: + name: Nombre + priority: + enums: + cycle_type: + bike: + cargo: + cargo_rear: + cargo_trike: + cargo_trike_rear: + e_scooter: + e_skateboard: + non_e_scooter: + non_e_skateboard: + pedi_cab: + penny_farthing: + personal_mobility: + recumbent: + stroller: + tall_bike: + tandem: + trail_behind: + trailer: + tricycle: + unicycle: + wheelchair: + frame_material: + aluminum: + composite: + magnesium: + organic: + steel: + titanium: + handlebar_type: + bmx: + drop_bar: + flat: + forward: + other: + rearward: + propulsion_type: + foot_pedal: + hand_pedal: + human_not_pedal: + pedal_assist: + pedal_assist_and_throttle: + throttle: + models: + ad: + ambassador: + ambassador_task: + ambassador_task_assignment: + b_param: + bike: + bike_organization: + bike_sticker: + bike_sticker_batch: + blog: + bulk_import: + cgroup: + color: + component: + country: + creation_state: + ctype: + customer_contact: + doorkeeper/access_grant: + doorkeeper/access_token: + doorkeeper/application: + duplicate_bike_group: + export: + feedback: + flipper/adapters/active_record/feature: + flipper/adapters/active_record/gate: + front_gear_type: + integration: + invoice: + invoice_organization_feature: + listicle: + location: + lock: + lock_type: + mail_snippet: + manufacturer: + membership: + normalized_serial_segment: + organization: + organization_feature: + organization_message: + other_listing: + ownership: + paint: + payment: + public_image: + rear_gear_type: + recovery_display: + state: + stolen_notification: + stolen_record: + theft_alert: + theft_alert_plan: + tweet: + user: + user_email: + wheel_size: + select_options: + color: + black: + blue: + brown: + green: + orange: + pink: + purple: + red: + silver_gray_or_bare_metal: + stickers_tape_or_other_cover_up: + teal: + white: + yellow_or_gold: + ctype: + aero_bars_extensions_bar_ends: + axle_nuts: + bashguard_chain_guide: + basket: + bell_noisemaker: + bottom_bracket: + brake: + brake_cable: + brake_lever: + brake_pad: + brake_rotor: + chain: + chain_tensioners: + chainrings: + cog_cassette_freewheel: + computer: + crankset: + derailleur: + detangler: + fairing: + fender: + fork: + generator_dynamo: + grips_tape: + handlebar: + headset: + hub: + hub_guard: + kickstand: + lights: + other: + pedals: + pegs: + rack: + rear_suspension: + rim: + saddle: + seatpost: + seatpost_clamp: + shift_and_brake_lever: + shift_cable: + shifter: + spokes: + stem: + tire: + toe_clips: + training_wheels: + tube: + unknown: + water_bottle_cage: + wheel: + organization: + organization_affiliation_options: + community_member: + employee: + graduate_student: + student: + stolen_record: + bike_was_not_locked: + cable_lock: + chain_with_padlock: + heavy_duty_bicycle_security_chain: + lock_is_missing_along_with_the_bike: + lock_was_cut_and_left_at_the_scene: + lock_was_opened_and_left_unharmed_at_the_scene: + not_locked: + object_that_bike_was_locked_to_was_broken_removed_or_otherwise_compromised: + other: + other_situation_please_describe_below: + two_u_locks: + u_lock: + u_lock_and_cable: + status_humanized: + bike: + abandoned: + found: + impounded: + stolen: + unregistered: + with_owner: + datetime: + distance_in_words: + half_a_minute: medio minuto + less_than_x_seconds: + one: menos de 1 segundo + other: menos de %{count} segundos + x_seconds: + one: 1 segundo + other: "%{count} segundos" + less_than_x_minutes: + one: menos de 1 minuto + other: menos de %{count} minutos + x_minutes: + one: 1 minuto + other: "%{count} minutos" + about_x_hours: + one: alrededor de 1 hora + other: alrededor de %{count} horas + x_days: + one: 1 día + other: "%{count} días" + about_x_months: + one: alrededor de 1 mes + other: alrededor de %{count} meses + x_months: + one: 1 mes + other: "%{count} meses" + about_x_years: + one: alrededor de 1 año + other: alrededor de %{count} años + over_x_years: + one: más de 1 año + other: más de %{count} años + almost_x_years: + one: casi 1 año + other: casi %{count} años + x_years: + one: 1 año + other: "%{count} años" + prompts: + year: Año + month: Mes + day: Día + hour: Hora + minute: Minuto + second: Segundo + helpers: + select: + prompt: Por favor seleccione + submit: + create: Crear %{model} + update: Actualizar %{model} + submit: Guardar %{model} + page_entries_info: + entry: + zero: + one: + other: + one_page: + display_entries: + zero: No se han encontrado %{entry_name} + one: Mostrando %{count} %{entry_name} + other: Mostrando un total de %{count} %{entry_name} + more_pages: + display_entries: Mostrando %{first} - %{last} %{entry_name} + de %{total} en total + bike_helper: + hidden: + hidden_because_status: + hidden_for_unauthorized_users: + made_without_serial: + unknown: + organization_helper: + address: + address_school: + your_full_address_is_required: + grape: + errors: + format: + messages: + coerce: no es válido + presence: + regexp: no es válido + blank: + values: + except_values: + same_as: + missing_vendor_option: + problem: + summary: + resolution: + missing_mime_type: + problem: + resolution: + invalid_with_option_for_represent: + problem: + resolution: + missing_option: + invalid_formatter: + invalid_versioner_option: + problem: + resolution: + unknown_validator: + unknown_options: + unknown_parameter: + incompatible_option_values: + mutual_exclusion: + at_least_one: + exactly_one: + all_or_none: + missing_group_type: + unsupported_group_type: + invalid_message_body: + problem: + resolution: + empty_message_body: + too_many_multipart_files: + invalid_accept_header: + problem: + resolution: + invalid_version_header: + problem: + resolution: + invalid_response: + flash: + actions: + create: + notice: + update: + notice: + destroy: + notice: + alert: + i18n_tasks: + add_missing: + added: + one: + other: + cmd: + args: + default_text: + desc: + all_locales: + config: + confirm: + data_format: + keep_order: + key_pattern: + key_pattern_to_rename: + locale_to_translate_from: + locales_filter: + missing_types: + new_key_name: + nostdin: + out_format: + pattern_router: + strict: + translation_backend: + value: + desc: + add_missing: + check_consistent_interpolations: + check_normalized: + config: + data: + data_merge: + data_remove: + data_write: + eq_base: + find: + gem_path: + health: + irb: + missing: + mv: + normalize: + remove_unused: + rm: + translate_missing: + tree_convert: + tree_filter: + tree_merge: + tree_mv_key: + tree_set_value: + tree_subtract: + tree_translate: + unused: + encourage: + - + - + - + enum_list_opt: + invalid: + enum_opt: + invalid: + errors: + invalid_format: + invalid_locale: + invalid_missing_type: + one: + other: + pass_forest: + common: + continue_q: + key: + locale: + n_more: + value: + data_stats: + text: + text_single_locale: + title: + deepl_translate: + errors: + no_api_key: + no_results: + specific_target_missing: + google_translate: + errors: + no_api_key: + no_results: + health: + no_keys_detected: + inconsistent_interpolations: + none: + missing: + details_title: + none: + openai_translate: + errors: + no_api_key: + no_results: + remove_unused: + confirm: + one: + other: + noop: + removed: + translate_missing: + translated: + unused: + none: + usages: + none: + yandex_translate: + errors: + no_api_key: + no_results: + countries: + AC: + AD: + AE: + AF: + AG: + AI: + AL: + AM: + AN: + AO: + AQ: + AR: + AS: + AT: + AU: + AW: + AX: + AZ: + BA: + BB: + BD: + BE: + BF: + BG: + BH: + BI: + BJ: + BL: + BM: + BN: + BO: + BQ: + BR: + BS: + BT: + BV: + BW: + BY: + BZ: + CA: + CC: + CD: + CF: + CG: + CH: + CI: + CK: + CL: + CM: + CN: + CO: + CP: + CR: + CU: + CV: + CW: + CX: + CY: + CZ: + DE: + DG: + DJ: + DK: + DM: + DO: + DZ: + EA: + EC: + EE: + EG: + EH: + ER: + ES: + ET: + EU: + FI: + FJ: + FK: + FM: + FO: + FR: + GA: + GB: + GD: + GE: + GF: + GG: + GH: + GI: + GL: + GM: + GN: + GP: + GQ: + GR: + GS: + GT: + GU: + GW: + GY: + HK: + HM: + HN: + HR: + HT: + HU: + IC: + ID: + IE: + IL: + IM: + IN: + IO: + IQ: + IR: + IS: + IT: + JE: + JM: + JO: + JP: + KE: + KG: + KH: + KI: + KM: + KN: + KP: + KR: + KW: + KY: + KZ: + LA: + LB: + LC: + LI: + LK: + LR: + LS: + LT: + LU: + LV: + LY: + MA: + MC: + MD: + ME: + MF: + MG: + MH: + MK: + ML: + MM: + MN: + MO: + MP: + MQ: + MR: + MS: + MT: + MU: + MV: + MW: + MX: + MY: + MZ: + NA: + NC: + NE: + NF: + NG: + NI: + NL: + 'NO': + NP: + NR: + NU: + NZ: + OM: + PA: + PE: + PF: + PG: + PH: + PK: + PL: + PM: + PN: + PR: + PS: + PT: + PW: + PY: + QA: + QO: + RE: + RO: + RS: + RU: + RW: + SA: + SB: + SC: + SD: + SE: + SG: + SH: + SI: + SJ: + SK: + SL: + SM: + SN: + SO: + SR: + SS: + ST: + SV: + SX: + SY: + SZ: + TA: + TC: + TD: + TF: + TG: + TH: + TJ: + TK: + TL: + TM: + TN: + TO: + TR: + TT: + TV: + TW: + TZ: + UA: + UG: + UM: + US: + UY: + UZ: + VA: + VC: + VE: + VG: + VI: + VN: + VU: + WF: + WS: + XK: + YE: + YT: + ZA: + ZM: + ZW: + doorkeeper: + applications: + confirmations: + destroy: "¿Estás seguro?" + buttons: + edit: Editar + destroy: Eliminar + submit: Enviar + cancel: Cancelar + authorize: Autorizar + form: + error: Ups! Verifica tu formulario por posibles errores + help: + confidential: Application will be used where the client secret can be kept + confidential. Native mobile apps and Single Page Apps are considered non-confidential. + redirect_uri: Usa una linea por URI + blank_redirect_uri: Leave it blank if you configured your provider to use + Client Credentials, Resource Owner Password Credentials or any other grant + type that doesn't require redirect URI. + scopes: Separa los ámbitos con espacios. Deja en blanco para usar los ámbitos + predeterminados. + native_redirect_uri: + edit: + title: Editar aplicación + index: + title: Tus aplicaciones + new: Nueva aplicación + name: Nombre + callback_url: Callback URL + confidential: Confidential? + actions: Actions + confidentiality: + 'yes': Sí + 'no': 'No' + new: + title: Nueva aplicación + show: + title: 'Aplicación: %{name}' + application_id: Identificador de aplicación + secret: Secret + scopes: Ámbitos + confidential: Confidential + callback_urls: Callback urls + actions: Acciones + authorizations: + buttons: + authorize: Autorizar + deny: Denegar + error: + title: Ha ocurrido un error + new: + title: Autorización requerida + prompt: "¿Autorizas a %{client_name} para usar tu cuenta?" + able_to: Está aplicación tendrá permisos para + show: + title: Código de autorización + authorized_applications: + confirmations: + revoke: "¿Estás seguro?" + buttons: + revoke: Revocar + index: + title: Tus aplicaciones autorizadas + application: Aplicación + created_at: Creada el + date_format: "%d/%m/%Y %H:%M:%S" + pre_authorization: + status: Pre-authorization + errors: + messages: + invalid_request: + unknown: La petición no tiene un parámetro obligatorio, incluye un valor + de parámetro incompatible, o tiene un formato incorrecto. + missing_param: 'Missing required parameter: %{value}.' + not_support_pkce: + request_not_authorized: Request need to be authorized. Required parameter + for authorizing request is missing or invalid. + invalid_redirect_uri: La uri de redirección no es valida. + unauthorized_client: El cliente no tiene autorización para realizar esta petición + utilizando este método. + access_denied: El propietario del recurso o el servidor de autorización han + denegado la petición. + invalid_scope: El scope solicitado no es válido, es desconocido, o tiene un + formato incorrecto. + invalid_code_challenge_method: The code challenge method must be plain or + S256. + server_error: El servidor de autorización ha encontrado una condición inesperada + que le ha impedido completar la petición. + temporarily_unavailable: El servidor de autorización no ha podido manejar + la petición por una sobrecarga temporal o por mantenimiento del servidor. + credential_flow_not_configured: El flujo de credenciales del propietario del + recurso ha fallado porque Doorkeeper.configure.resource_owner_from_credentials + no está configurado. + resource_owner_authenticator_not_configured: La búsqueda del propietario del + recurso ha fallado porque Doorkeeper.configure.resource_owner_authenticator + no está configurado. + admin_authenticator_not_configured: Access to admin panel is forbidden due + to Doorkeeper.configure.admin_authenticator being unconfigured. + unsupported_response_type: El servidor de autorización no soporta este tipo + de respuesta. + invalid_client: La autenticación del cliente ha fallado por cliente desconocido, + cliente no autenticado, o método de autenticación incompatible. + invalid_grant: La autorización proporcionada no es válida, ha expirado, se + ha revocado, no coincide con la URI de redirección utilizada en la petición + de autorización, o ha sido solicitada por otro cliente. + unsupported_grant_type: El tipo de autorización no está soportada por el servidor + de autorización. + invalid_token: + revoked: El token de acceso ha sido revocado + expired: El token de acceso ha expirado + unknown: El token de acceso es inválido + revoke: + unauthorized: No tiene autorización para revocar este token + invalid_resource_owner: + flash: + applications: + create: + notice: Aplicación creada. + destroy: + notice: Aplicación eliminada. + update: + notice: Aplicación actualizada. + authorized_applications: + destroy: + notice: Aplicación revocada. + layouts: + admin: + title: Doorkeeper + nav: + oauth2_provider: Proveedor OAuth2 + applications: Aplicaciones + home: Home + application: + title: Autorización OAuth requerida + scopes: + public: + read_bikes: + read_bikewise: + read_organization_membership: + read_user: + unconfirmed: + write_bikes: + write_bikewise: + write_organizations: + write_user: + views: + pagination: + first: "« Primera" + last: Última » + previous: "‹ Anterior" + next: Siguiente › + truncate: "…" + bike_versions: + index: + primary_colors: + bikes: + bike: + location: + primary_colors: + serial: + bike_show_overlays: + add_a_picture_of_it: + add_a_picture_so_people_know_what_to_look: + add_some_more_information_about_it: + can_we_share_your_story: + claim_bike_type: + claim_it_so_you_can_update_your_listing: + did_we_help: + edit: Editar + how_did_you_get_it_back: + its_also_how_we_get_better_at_recovering: + mark_graduated_resolved: + mark_parking_resolved: + mark_recovered: + nevermind: + no_futher_action_necessary: + no_one_can_see_it_but_you: + organization_sent_this_message: + please_email_organization_with_questions_html: + please_tell_us_how_you_got_your_bike: + thank_you_for_registering_this_found_bike_type: + this_bike_type_is_hidden: + this_bike_version_is_hidden_html: + were_honored_to_have_your_bike: + were_really_bummed_your_bike_type_was_stolen: + when_did_you_recover_it: + whoa_this_awesome_bike_type_is_yours: + whoa_this_awesome_version_is_yours: + you_have_already_marked_remaining: + you_have_already_marked_resolved: + you_sent_this_bike_html: + your_bike: + index: + all: + miles_of: + no_bikes_matched: + not_marked_stolen: + search_for_stolenness_desc_bikes: + stolen_anywhere: + stolen_within: + you: + main_show_block: + bike_photo: + color_may_not_match: + componentyear: + cycle_type: + department_city: + description_of_incident: + distinguishing_features: + found_at: + frame_material: + frame_size: + front: + front_rear: + front_wheel_diameter: + handlebar_type: + impounded_at: + location: + locking_circumvented: + locking_description: + manufacturer: + model: + name: Nombre + other: + other_serial: + paint_description: + police_report: + primary_colors: + propulsion_type: + rear: + rear_wheel_diameter: + serial: + stock_photo: + stolen_at: + stolen_details: + wheel_diameter: + year: Año + new: + additional_serial_sticker_number: + affiliation: + are_you_certain: + city: + electric: + enter_bike_type_details: + enter_found_bike_type_details: + enter_stolen_bike_type_details: + how_to_find_serial: + i_just_dont_know_the_serial: + im_100_sure: + is_a_handmade_frame: + it_probably_has_a_serial_number: + mailing_address: + manufacturer: + missing_serial: + model_year: + nevermind: + or: + other_manufacturer: + our_serial_page: + owner_email: + phone: + read_how_to_find_html: + register: + register_with: + required: + select_other: + serial_help: + serial_help_content_html: + state: + sticker_id_html: + student_id: + this_is_a: + traditional_bike: + traditional_bike_definition: + unknown_year: + unsure_or_unknown: + very_few_bikes_html: + was_made_before_1970: + without_serial: + without_serial_number: + zipcode: + organization_stolen_message: + report_link_text: + report_the_theft_to_the_organization_html: + organized_access_panel: + access_panel: + added_to_track_parking_notification: + additional_registrations_information: + additional_registrations_information_visible_because: + additional_registrations_potential_duplicates: + additional_registrations_registered_at: + additional_registrations_this_bike: + address: + address_or_intersection: + as_a_bikeindex_ambassador_html: + assign_sticker: + avery_exportable: + believe_it_is_anyway: + bike_is_not_registered_html: + bike_is_registered: + bike_not_marked_stolen: + choose_country: + city: + claimed: + contact_the_owner_it_is_stolen: + creation_description: + creator: + edit: Editar + email_to_deal_with_this_html: + is_false: + is_not_registered_html: + is_registered: + is_true: + link_sticker: + link_url_for_online_sighting: + mark_bike_recovered: + missing_address: + missing_owner_name: + model_audit: + not_audited: + or_call_owner_html: + org_can_edit_bike: + org_cannot_edit: + organization_can_edit_after_claimed: + organization_child: + organization_registered: + owner_email: + owner_name: + parking_notification_notes_html: + permission: + registered: + send_message: + state: + sticker: + sticker_code: + support_email: + unable_to_display_additional_information: + unregistered_parking_notification: + user_revoked_permission_html: + waiting_on_device_location: + where_did_you_see_this_bike: + write_a_message: + zipcode: + pdf: + bike_description: + bike_serial: + bikeindex_org: + by: + color: + date_stolen: + department: + description_of_theft: + frame_size: + front_gears: + front_wheel: + location: + manufacturer: + model: + narrow_tires: + online: + owner_phone: + paint: + police_report: + printout: + rear_gears: + rear_wheel: + registered: + registration: + saddle: + stolen: + to: + wide_tires: + with: + with_coaster_brake: + scanned: + added: + color: + isnt_linked_to_a_bike: + link_bike_sticker_kind: + link_it: + manufacturer: + mnfg_model_color_html: + model: + new_bike_link_text: + or_click_html: + please_email_support_html: + please_sign_in: + register_a_new_bike_html: + to_link_that_card_with_a_bike: + update: + you_can_enter_the_url: + you_have_claimed_the_maximum_permitted: + show: + change_the_bike_sticker_linked_to: + contact_the_owner: + created_to_record_parking_notification: + from: + hidden_by_owner: + in: + is_this_linked_to_incorrect_bike: + know_something_about_this_bike_type: + link_url: + looking_for_correct_owner: + no_one_but_the_user_and_bike_index_admins: + not_registered_by_user: + or_call: + owners_phone_number: + send_message: + share_it: + spread_the_word: + switch_to_new_bike_id: + test_registration: + update: + view_users_other_registrations: + where_did_you_see_this_bike: + write_them_a_message: + you_scanned_this_sticker_html: + stolen_checklist: + a_photo_of_your_bike_type: + add: + add_bike_link_to_your_theft_report_html: + add_serial_number: + bike_index_does_this: + contact_seller: + facebook_instagram_etc: + leads_online: + leads_online_url: + list_bike_type_on_bike_index: + location_where_the_theft_occurred: + nl_digid_required: + nl_file_police_report: + nl_online: + nl_person: + nl_person_report: + nl_phone: + nl_phone_report: + nl_website_link_text: + promoted_stolen_bike_alerts: + push_bike_info_to: + push_bike_info_to_law_enforcement: + report_theft_html: + requires_a_serial_number: + share_on_twitter: + share_widely_on_your_personal_social: + supercharge_sharing_on_facebook: + your_police_report: + theft_alerts: + new: + best_value: + bike_index_can_help: + bike_index_promoted_alert: + city_state_country: + days: + here: + no_photos_add_photos_here_html: + preview: + purchase_alert: + select_an_image: + select_an_image_to_see_preview: + targeted_sharing_html: + views: + show: + stay_tuned_for_an_update_once_weve_proces: + thank_you: + your_order_is_pending: + table: + created: + creator: + end: + existing_theft_alerts: + plan: + start: + status: + bikes_edit: + accessories: + add_a_component: + bike_details: + a_qr_sticker: + add_a_sticker_label_html: + add_end: + add_start: + bike_name: + bike_registration: + choose_country: + choose_material: + city: + existing_stickers: + frame_size: + general_description: + made_without_serial: + main_frame_material: + manufacturer: + model_year: + nevermind: + other_serial_or_registration_number: + please_fill_in_both_fields: + reason_for_update: + remove_end: + remove_start: + seat_tube_length: + state: + street: + submit_manufacturer_correction: + submit_serial_correction: + submit_update: + tell_us_about_your_bike: + unknown_year: + unsure_or_unknown: + update_on_bike: + update_serial_number: + update_these_attributes_on_bike_html: + updated_serial: + version_name: + zipcode: + bike_fields: + revised_colors: + add_a_color: + choose_color: + color_help: + primary_color_help_content_html: + primary_frame_color: + remove_color: + secondary_frame_color: + tertiary_frame_color: + revised_component_fields: + component_type: + model: + model_year: + other_manufacturer: + part_description: + part_serial: + part_type: + remove_part: + select_other: + unknown_part_type: + stolen_location: + address_or_intersection: + choose_country: + city: + state: + where_was_it_stolen_type: + zipcode: + drivetrain: + all_diameters: + belt_drive: + choose_diameter: + coaster_brake: + drivetrain: + drivetrain_type: + fixed: + front_gears: + hide_extra_sizes: + internal_front_gears: + internal_rear_gears: + narrow: + narrow_title: + rear_gears: + select_chainring_count: + select_cog_count: + show_more_sizes: + side: + sidetitleize_wheel: + wheels: + wide: + wide_help: + wide_title: + edit_bike_organization: + can_edit_this_bike: + manage_organization_information: + manage_organization_information_via: + remove: + groups: + add_an_organization: + are_you_part_of_a_school_want_to_bolster_: + choose_organization: + creation_organization: + groups_and_organizations: + other_organizations: + remove: + ownership: + enter_new_owner_email_to_transfer: + impound_record_page: + new_email_assigned_save_to_update: + sell_trade_or_give_away_this_bike: + this_bike_is_currently_impounded_html: + to_transfer_use_impound_record_page_html: + transfer_ownership: + photos: + drag_and_drop_files_here_html: + drag_the_uploaded_photos: + finished_uploading: + primary_menu: + bike_type_information: + purchase_alert: + save_changes: + theft_information: + publicize: + do_these_things_for_the_best_chance_of_re: + help_me_find_bike: + share_on_facebook: + share_on_twitter: + share_your_listing_so_everyone_knows_to_w: + remove: + delete_bike: + delete_this_bike: + delete_this_version_html: + faqs: + hide_this_bike: + keeping_your_bike_public: + modal_title: + nevermind: + reason_for_deletion: + reason_modal_body: + reason_modal_title: + unhide_this_bike: + visibility: + we_strongly_recommend: + you_can_read_more_html: + report_recovered: + can_we_share_your_story: + did_we_help: + how_did_you_get_it_back: + its_how_we_get_better_at_recovering_bikes: + mark_recovered: + nevermind: + not_enough_info: + please_tell_us_how_you_got_your_bike: + this_bike_has_been_returned: + were_so_glad: + report_stolen: + this_bike_type_is_stolen_or_missing: + theft_details: + charges_go_to_cost_of_ad: + click_to_see_promoted_alert_blog_post_html: + do_these_things_for_the_best_chance: + here: + promoted_theft_alert_service_description: + promoted_theft_alerts: + try_one_now: + we_can_create_fb_ads_for_you: + theft_details_partial: + department_city: + description_of_the_incident: + do_you_have_proof_of_ownership: + eg_if_we_tweet_about_it: + if_this_bike_type_was_added: + police_report: + receive_notifications: + show_phone_police: + show_phone_shops: + show_phone_users: + when_was_it_stolen_at: + without_a_valid_report_number_html: + controllers: + application: + handle_unverified_request: + csrf_invalid: + bike_stickers: + find_bike_sticker: + must_be_signed_in: + unable_to_find_sticker: + update: + cannot_update: + bikes: + assign_bike_stickers: + sticker_assigned: + unable_to_find_sticker: + create: + bike_was_added: + bike_was_sent_to: + edit: + accessories: + alert: + bike_details: + bike_or_version_version: + drivetrain: + found_details: + groups: + ownership: + photos: + publicize: + remove: + report_recovered: + report_stolen: + theft_details: + versions: + ensure_user_allowed_to_edit: + bike_has_not_been_claimed_yet: + bike_impounded: + bike_impounded_by_organization: + you_dont_own_that: + you_have_to_sign_in: + index: + we_dont_know_location: + new: + please_sign_in_to_register: + we_couldnt_find_that_registration: + recovery: + ensure_token_match!: + already_recovered: + incorrect_token: + update: + bike_recovered: + resolve_token: + marked_remaining: + marked_retrieved: + notification_already_retrieved: + notification_impounded: + unable_to_find_graduated_notification: + unable_to_find_parking_notification: + scanned: + unable_to_find_sticker: + update: + bike_was_updated: + concerns: + controller_helpers: + authenticate_user: + cannot_find_bike: + create_account: + create_account_to_claim: + owner_already_has_account: + you_have_to_log_in: + ensure_member_of!: + accept_tos_for_orgs: + not_a_member_of_that_org: + please_sign_in: + require_admin!: + not_an_org_admin: + require_index_admin!: + not_permitted_to_do_that: + require_member!: + not_an_org_member: + return_to_if_present: + reset_your_password: + sign_in_if_not!: + please_sign_in: + sessionable: + sign_in_and_redirect: + logged_in: + user_is_banned: + skip_if_signed_in: + already_signed_in: + feedbacks: + block_the_spam: + please_sign_in: + create: + thanks_for_your_message: + we_will_contact_you: + integrations: + integrations_controller_creation_error: + problem_authenticating_with_provider: + locks: + create: + lock_created: + find_lock: + not_your_lock: + my_accounts: + edit: + password: Contraseña + registration_organizations: + sharing: + user_settings: + update: + current_password_doesnt_match: + successfully_updated: + oauth: + applications: + ensure_app_owner!: + not_your_application: + organizations: + create: + organization_created: + find_organization: + not_found: + lightspeed_interface: + must_create_an_account_first: + must_create_an_organization_first: + set_bparam: + no_user: + organized: + ambassador_task_assignments: + update: + could_not_update: + status_updated: + base: + ensure_admin!: + must_be_org_admin: + ensure_ambassador_authorized!: + must_be_ambassador: + must_be_in_ambassador_org: + ensure_not_ambassador_organization!: + must_be_an_admin: + raise_do_not_have_access: + bikes: + update: + unknown_update_action: + bulk_imports: + create: + bulk_import_created: + file_imported: + unable_to_create_bulk_import: + show: + unable_to_find_import: + exports: + create: + wait_to_download: + with_avery_redirect: + create_avery_export: + do_not_have_permission: + sticker_already_assigned: + destroy: + export_deleted: + update: + bike_stickers_removed: + unknown_update_action: + manage_impoundings: + update: + could_not_update: + updated_successfully: + manages: + destroy: + contact_support_to_delete: + deleted_org: + update: + could_not_update: + updated_successfully: + parking_notifications: + create: + successfully_created: + unable_to_create: + stickers: + find_bike_sticker: + unable_to_find_sticker: + update: + cannot_update: + users: + create: + insufficient_invitations: + no_remaining_user_invitations: + user_was_invited: + users_invited: + destroy: + deleted_user: + reject_self_updates: + cannot_remove_yourself: + update: + updated_membership: + ownerships: + show: + no_longer_your_bike: + not_your_bike: + you_claimed_it: + public_images: + create: + cannot_create: + destroy: + cannot_delete: + image_deleted: + ensure_authorized_to_update!: + no_permission_to_edit: + update: + image_updated: + sessions: + create: + invalid_email_or_password: + create_magic_link: + link_sent: + user_not_found: + stolen_notifications: + create: + failure: + thanks: + unauthorized: + theft_alerts: + create: + order_is_pending: + unable_to_process_order: + ensure_user_allowed_to_create_theft_alert: + unauthorized: + user_emails: + confirm: + already_confirmed: + email_confirmed: + incorrect_token: + destroy: + email_primary: + email_removed: + only_email: + ensure_user_email_ownership: + you_must_be_signed_in: + make_primary: + confirm_email_first: + email_has_been_made_primary: + resend_confirmation: + resend_confirmation: + users: + confirm: + already_confirmed: + find_user_from_password_reset_token!: + does_not_match_token: + token_expired: + resend_confirmation_email: + please_sign_in: + resending_email: + reset_password_token_update_form: + link_no_longer_valid: + send_password_reset_email: + email_not_found: + reset_just_sent_wait_a_sec: + show: + user_not_sharing: + unsubscribe: + successfully_unsubscribed: + unsubscribe_update: + successfully_unsubscribed: + update: + accept_tos: + accept_tos_to_use_as_org: + thanks_for_accepting_tos: + you_can_use_bike_index: + you_can_use_bike_index_as_org: + update_password_with_reset_token: + password_reset_successfully: + welcome: + recovery_stories: + no_stories_to_display: + customer_mailer: + additional_email_confirmation: + html: + click_verify_email_html: + if_you_didnt_request_this: + please_confirm_your_additional_email: + user_would_like_to_merge: + verify_email: + subject: + admin_contact_stolen_email: + html: + this_email_is_about: + bike_possibly_found_email: + html: + bike: + bike_registry: + check_out_match_here: + we_think_your_stolen_bike_html: + text: + bike: + bike_registry: + check_out_match_here: + we_think_your_stolen_bike: + confirmation_email: + html: + click_to_verify_html: + please_confirm_your_email_address: + verify_email: + youre_almost_there: + subject: + invoice_email: + html: + donation_will_help: + payment_received: + thank_you_so_much: + thanks_for_signing_up: + we_really_appreciate_your_support: + subject: + magic_login_link_email: + html: + click_the_button: + if_you_did_not_request: + only_valid_once: + sign_in: + subject: + password_reset_email: + html: + if_you_did_not_request_a_new_password_html: + please_click_the_button_below_to_create_a: + reset_password: + tell_us: + whoops_it_appears_you_have_forgotten_your: + subject: + recovered_from_link: + html: + marked_recovered_by: + note_if_you_didnt_recover_html: + the_description_of_the_recovery_was: + were_so_glad_you_got_your_bike_type_back: + your_bike_type_was_marked_recovered_on_bik: + subject: + stolen_bike_alert_email: + html: + alert_retweeted_by_html: + area: + improve_your_chances_of_recovery_by_doing: + stolen_bike_alerter: + this_email_is_about_the_stolen_bike: + we_sent_out_this_tweet_from: + were_spreading_the_word_about_your_stolen: + text: + color: + hopefully_you_find_the_bike_soon: + make: + serial: + we_sent_out_this_tweet_from: + were_spreading_the_word_about_your_stolen: + stolen_notification_email: + html: + if_you_believe_this_email_is_illegitimate: + link: + no_one_should_be_extorted: + please_help_sender_html: + sender_email_sent_you_a_message_html: + stolen_bike_type: + they_believe_it_is_stolen: + this_email_is_about_the_bike_type_register: + update_organization_direct_message_html: + you_can_just_forward_this_message_to: + you_registered_this_bike_type_on: + subject: + updated_terms_email: + html: + as_always_thanks_for_helping_register_bik: + bike_index: + bike_index_privacy_policy: + bike_index_terms_of_service: + bike_index_vendor_terms_of_service: + check_link_to_see_more_html: + gavin_hoover_and_the_bike_index_team: + hello: + help_prevent_bike_theft_html: + here: + make_a_donation: + nothing_significant_has_changed_about_how: + ps_if_you_like_reading_these_kinds_of_doc: + were_emailing_you_because_we_updated_our_: + weve_always_wanted_to_provide_html: + you_may_not_know_but_bike_index_recently_: + subject: + text: + as_always_thanks_for_helping_register_bik: + gavin_hoover_and_the_bike_index_team: + hello: + nothing_significant_has_changed_about_how: + ps_if_you_like_reading_these_kinds_of_doc: + were_emailing_you_because_we_updated_our_: + weve_always_wanted_to_provide_one_free_un: + you_may_not_know_but_bike_index_recently_: + user_alert_email: + html: + this_email_is_about_the_bike_type_register: + welcome_email: + html: + add_some_information_about_your_bikes_whe: + good_thinking_were_glad_youve_joined: + welcome_to_bike_index: + subject: + feedbacks: + form: + email_address: + name: Nombre + send_it: + subject: + your_message: + index: + contact_us: + have_a_question_we_havent_answered: + help_with_bike_index: + log_in_to_send_a_comment: + you_can_reach_us_at_contact_html: + info: + about: + about_bike_index: + alumni: + bike_registration_that_works: + bryan_hance_bio_new_html: + cofounded_by_html: + craig_dalton_bio_html: + gavin_hoover_bio_html: + jan_pecnik_bio_html: + merging_the_services: + mike_oleon_bio_html: + nonprofit_status: + seth_built: + seth_herr_bio_html: + seth_herr_image_title: + simple_efficient_effective: + the_team: + widely_used: + dev_and_design: + bike_index_logos_html: + bike_shop_card: + bike_shop_card_pdf_url: + bike_shop_cards_html: + design_resources: + development_resources: + display_widget_html: + flyers_html: + image_assets: + meant_to_be_usable: + nearby_stolen_widget: + nearby_stolen_widget_html: + oauth_apps_html: + oauth_authorized_apps_html: + on_github: + open_source_html: + our_api_documentation: + trifold_flyer: + trifold_flyer_pdf_url: + image_resources: + basic_logo_alt: + basic_logo_html: + basic_logo_in_white_html: + bike_index_image_assets: + black_background_shown_here: + check_out_resources_html: + image_has_no_background: + logo_with_background_cutout_html: + logo_with_blue_shield_html: + logo_with_cutout: + logo_with_stripes: + single_color_logo: + single_color_logo_in_white: + striped_logo_html: + lightspeed: + a_few_things_to_note: + a_listing_on_bike_index_will_be_created: + all_you_have_to_do_is_html: + already_have_a_sophisticated_html: + bicycles_sold_before_you_activated_lights: + bike_index_cofounder: + how_to_lightspeed_retail: + i_started_bike_index_because: + learn_more_about: + lightspeed_retail: + once_you_have_a_bike_index_account_set_up: + privacy_policy_here: + registering_with_a_sticker_html: + security_link_text: + sign_your_shop_up: + the_bicycles_owner_will_receive_an_email: + the_first_step_is_to_create_an_account_html: + this_page_gives_instructions_html: + we_believe_that_bicycle_registration: + we_know_you_and_your_customers_html: + were_happy_to_answer_any_questions_html: + write_do_not_register: + privacy: + available_here: + changes: + changes_p1: + changes_p2_html: + cookies: + cookies_p1: + cookies_p2: + cookies_p3: + data_storage: + data_storage_p1: + disclosure: + disclosure_p1_html: + general_information: + general_information_p1: + general_information_p2: + general_information_p3: + information_gathering: + information_gathering_p1: + information_gathering_p2: + last_updated_html: + questions: + questions_p1_html: + see_terms_link_html: + terms_of_service: + protect_your_bike: + 211547_bikes_were_reported_stolen: + 9_in_10_incidents_of_bike_theft: + a_correctly_locked_bicycle: + according_to_fbi_statistics_html: + aim_to_have_the_hardest_bike_to_steal_on_: + cable_locks_should_never_be_used_as_primary: + cheaper_and_older_ulocks_can_often_be_broken: + checkout_out_bestbikelock_html: + correctly_locking_a_bike: + dont_rely_on_foot_traffic_to_keep_your_bi: + dont_rely_on_the_presence_of_cameras_to_k: + exploration: + jump_to_footnote_1: + make_sure_your_bike_isnt_one_of_them: + many_bicycles_are_stolen_from_garages_and: + over_a_million_bikes_are_stolen_yearly: + pink_power_ulocks: + protect_your_bike: + thanks_to_researchers_html: + the_frame_is_locked_to_an_immovable_objec: + tug_on_whatever_youre_about_to_lock_to_ma: + use_a_ulock_that_costs_at_least_40: + resources: + api_documentation: + bike_index_resources: + check_out_our_link_html: + did_you_know_every_bike_html: + get_bike_index_html: + how_not_to_buy_a_stolen_bike: + infographic_html: + learn_about_serial_numbers_here: + logos_and_design_assets: + map_of_bike_thefts: + the_manufacturers: + view_the_list_of_all_html: + we_have_an_open_api_check_out_html: + were_open_source_view_this_app_html: + serials: + a_serial_number_located_on_a_html: + a_serial_number_on_the_underside_html: + all_bikes: + all_have_unique_serial_numbers: + another_serial_number_beneath_html: + another_standard_serial_number: + bike_serial_numbers: + bike_with_bottom_circled: + certain_numbers_and_letters_html: + doberman_serial: + finding_a_bicycle_serial_number: + finding_bicycles_by_serial_number_html: + hopefully_you_can_find_the_serial_html: + in_this_picture_html: + jump_back_to_footnote: + look_serial: + most_bicycles_have_their_serial_number_en: + okay_fine_so_maybe_html: + our_search_form: + rad_power_serial: + rad_power_serials_html: + schwinn_serial: + searching_serials_on_bike_index: + serial_search_input: + some_bikes_have_multiple_html: + some_schwinn_bicycles_also: + standard_serial_number: + the_bottom_bracket_html: + we_do_close_serial_matching_html: + we_do_not_currently_do_partial_html: + we_split_bike_serials_up_by_html: + weve_done_a_few_things_to_make_it_more_li: + when_adding_a_bike_to_the_index: + show: + also_published: + updated: + terms_text: + about_our_terms_of_service: + available_here: + best_effort: + bike_index_reserves: + bike_index_shall_not_be_liable: + by_creating_account: + by_giving_bike_shops_html: + content_on_the_service: + if_bike_index_html: + last_updated_html: + may_be_terminated: + no_abuse: + no_spam: + no_waiver: + questions_html: + section_a_header: + section_b_header: + section_c_header: + section_d_header: + section_e_header: + support_for_bike_index_services: + terms_of_service: + third_party_vendors: + we_claim_no_ip: + we_dont_prescreen_content: + we_may_remove_content: + welcome_to_bike_index_html: + you_agree_not_to_resell: + you_are_responsible_for_content: + you_are_responsible_for_security: + you_may_not_use_for_illegal: + you_must_be_human: + you_must_notify: + you_must_provide_email: + you_shall_defend_bike_index: + your_use_of_the_service: + vendor_terms_text: + about_terms_of_service_for_vendors: + available_here: + because_bike_index_html: + becoming_a_vendor: + bike_index_vendor_service: + bike_index_vendor_tos: + binding_arbitration: + binding_arbitration_p1: + by_giving_bike_shop_employees_html: + customer_service: + customer_service_body: + disclosures_and_notices: + disclosures_and_notices_p1: + effects_of_deactivation: + effects_of_deactivation_p1: + effects_of_termination: + effects_of_termination_p1: + effects_of_termination_p2: + governing_law: + governing_law_p1: + illegal_use: + illegal_use_p1: + last_updated_html: + license_trademarks: + license_trademarks_p1: + license_trademarks_p2: + lightspeed_integration: + lightspeed_integration_p1: + lightspeed_integration_p2: + limitation_of_liability: + limitation_of_liability_p1: + limitation_of_liability_p2: + limitation_of_liability_p3: + limitation_of_liability_p4: + limitation_of_liability_p5: + limitation_of_liability_p6: + no_warranties: + no_warranties_p1: + no_warranties_p2: + no_warranties_p3: + no_warranties_p4: + our_role: + our_role_body: + ownership: + ownership_p1: + ownership_p2: + ownership_p3: + privacy_of_others: + privacy_of_others_p1_html: + privacy_of_others_p2_html: + privacy_of_others_p3_html: + privacy_of_others_p4_html: + prohibited_businesses: + prohibited_businesses_p1: + prohibited_businesses_p2: + references_to_relationship: + references_to_relationship_p1: + representation_and_warranties: + representation_and_warranties_p1: + restricted_use: + restricted_use_p1: + section_a: + section_c: + section_d: + security: + security_body_html: + term: + term_p1: + termination: + termination_and_other_legal_terms: + termination_p1: + terms_of_service_for_vendors: + tos_agreement: + vendor_registration: + vendor_registration_p1: + vendor_registration_p2: + verification: + verification_p1: + verification_p2: + verification_p3: + verification_p4: + we_can_deactivate_html: + we_provide_you_with_html: + welcome_to_bike_index_html: + with_the_following_brief_descriptions: + your_liability: + your_liability_p1: + your_liability_p2: + your_privacy: + your_privacy_body_html: + where: + bike_index_partners: + if_you_would_like_to_join_html: + international_partner_organizations: + show_location_on_map: + sign_up_your_organization: + signup_page: + us_partner_organizations: + website_for_organization: + javascript: + bikes_search: + abandoned: + absent: + color: + hidden: + impounded: + location: + registry: + registry_id: + search_external_registries: + matches_found_html: + no_matches_found_html: + searching_html: + search_serials_containing: + matches_found_html: + no_matches_found_html: + searching_html: + search_similar_serials: + matches_found_html: + no_matches_found_html: + searching_html: + serial: + serial_search: + stolen: + unknown: + unknown_brand: + payments: + enter_the_minimum_amount: + select_or_enter_amount: + landing_pages: + ambassadors_current: + after_a_couple_of_recoveries_i_got_hooked: + anytown_earth: + as_the_founder_of_bicycle_security_adviso: + become_a_bike_index_ambassador_and_help_s: + bike_index_allows_us_to_verify_details_ab: + bike_index_helped_me_recover_my_beloved_b: + bike_index_helps_people_recover_their_sto: + bike_index_provides_ease_of_use_and_secur: + current_ambassadors: + educating_kids_about_how_to_lock_their_bi: + gears: + i_believe_community_involvement_makes_a_d: + if_a_person_loses_their_bike_there_is_suc: + join_their_ranks: + steve_piercys_ambassadorship_is_sponsored_html: + the_heroes_of_bikedom: + whats_your_story: + why_bike_index: + your_name_here: + ambassadors_how_to: + 9_steps_for_getting_your_stolen_bike_back: + access_to_ambassadors_slack_channel_for_s: + anyone_can_help_bike_index_we_are_always_: + apply_to_be_an_ambassador_here: + apply_today: + be_a_bike_saver: + become_a_bike_index_ambassador: + become_an_ambassador: + bike_index_is_a_nonprofit_with_a_big_miss: + bike_index_launches_new_ambassador_progra: + check_out_our_media_resources: + connect_us_with_city_officials_law_enforc: + current_ambassadors: + follow_bike_index_on_twitter_facebook_and: + get_bike_shops_signed_up_for_bike_index_u: + give_you_shoutouts_on_social_media: + here: + how_it_works: + join_our_list_of_ambassadors_and_advocate: + monitoring_online_sales_platforms_like_cr: + pos_integrations: + relevant_articles: + share_bike_index_on_social_channels_inclu: + start_here: + to_become_a_bike_index_ambassador_fill_ou: + typical_ambassador_activities: + typical_ambassador_activities_include: + view_current_ambassadors: + want_to_help_fight_bike_theft_in_your_com: + we_provide_you_with_the_resources_to_make: + why_work_with_bike_index: + you_bring_the_ideas_make_the_connections_: + ascend: + ascend_knowledge_base_article: + automatic_bicycle_registration: + email_shops_security_html: + email_us_the_password_to_finish_setting_u: + follow_the_setup_instructions_html: + if_your_shop_uses_lightspeed_html: + link_your_ascend_retail_and_bike_index: + new_bike_shop_org: + once_youve_set_up_the_trek_ascenwd: + security_link_text: + sign_up_as_a_new_org_html: + then_if_a_customers_bike_goes_missing_html: + we_have_a_new_free_bicycle_registration: + bike_shop_packages: + additional: + bike_index_for_bike_shops: + choose_a_package_size: + compare_plans_and_features: + contact_us: + contact_us_for_trial: + forever: + free: + package_title: + questions_want_to_get_started: + sign_up: + sign_up_now: + simply_the_best_bike_registry: + try_for_free: + year: + campus_packages: + additional: + all_plans_come_with_a_30day_free_trial: + bike_index_for_colleges_universities: + choose_a_package_size: + clean_up_your_campus_messy_registry: + compare_plans_and_features: + contact_us: + contact_us_for_trial: + forever: + free: + package_title: + questions_want_to_get_started: + sign_up: + sign_up_now: + try_for_free: + year: + cities_packages: + additional: + all_plans_come_with_a_30day_free_trial: + bike_index_for_cities: + choose_a_package_size: + compare_plans_and_features: + contact_us: + contact_us_for_trial: + forever: + free: + give_your_constituents_the_bike_registry_: + package_title: + questions_want_to_get_started: + sign_up: + sign_up_now: + try_for_free: + year: + find_out_more: + all_accounts_come_with_bike_index: + custom_development_available: + find_out_more_html: + get_in_touch_link: + want_qr_stickers: + for_bike_shops: + 5_ways_to_grow_community_for_your_bike_sh: + automatic_registration_at_point_of_sale: + bike_index_for_bike_shops: + bike_shops_deck: + bikes_before_they: + build_goodwill_with_your_customers_with_a: + check_out: + connect_your_ascend_account_html: + connect_your_lightspeed_account: + curious_what_information_html: + do_right_by_your_customers: + dont_use_ascend_or_lightspeed_html: + driving_service_revenues_with_bicycle_reg: + embed_a_bike_index_registration_form: + for_free_we_provide_you_with_t: + here: + join_our_network_link_html: + learn_more: + network_of_shop_partners: + or: + our_official_lightspeed_integration_provi: + printed_materials: + register_bikes_for_your_customers: + related_articles: + security_link_text: + sign_up_for_a_free_bike_index_account_html: + sign_up_for_free: + trusted_by_bike_shops_everywhere: + use_ascend: + use_lightspeed_retail: + used_at_bike_shops_everywhere: + for_cities: + actually_get_people_registered_and_do_it_: + bike_index_for_cities: + bike_index_is_the_community_registration_: + bike_index_new_dashboard: + bike_index_organization_impounding: + bike_index_unveils_partnership_with_the_c: + bring_together_bike_shops_schools_municip: + check_out: + cities_deck: + embed_a_bike_index_registration_form: + engage_your_residents_and_recover_their_b: + features_amp_pricing: + mitigate_the_registration_mess: + no_more_index_cards_or_excel_sheets_give_: + our_community_is_your_community: + plug_your_city_in_nationally: + related_articles: + trusted_by_municipalities_everywhere: + used_by_municipalities_everywhere: + for_community_groups: + bike_index_for_community_groups: + bike_index_launches_new_ambassadors_progr: + bike_index_welcomes_stolen_bikes_nola: + embed_a_bike_index_registration_form: + gone_are_the_days_where_you_had_to_regist: + help_us_help_you: + here: + partners_made_in_heaven: + purchase_a_pack_of_advocacy_html: + registration_drive: + registrations_are_free_forever_join_bike_: + related_articles: + sign_up_for_free: + spread_the_bike_index_word_html: + the_most_widereaching_and_effective_tools: + trusted_by_community_groups_everywhere: + used_by_community_groups_everywhere: + we_provide_free_and_easy_access_to_our_re: + for_law_enforcement: + automated_tweets: + bend_reduces_bike_theft_by_60_percent: + bike_index_for_law_enforcement: + bike_index_organization_impounding: + calgary_doubles: + check_out: + embed_a_bike_index_registration_form: + here: + if_you_want_to_collaborate_html: + is_your_department_equipped_to_fight_bike: + law_enforcement_deck: + local_ambassadors: + our_extensive_archive_has_helped_officers: + put_a_lock_on_bike_theft: + recover_your_citizens_bikes: + related_articles: + sign_up_for_free: + trusted_by_law_enforcement_everywhere: + used_by_law_enforcement_everywhere: + with_over_600_partnerships_html: + with_over_registrations_and_almost: + you_have_the_authority_to_bring_html: + youre_the_first_one: + for_organizations_photo_list: + bike_shops: + cities: + community_groups: + for: + schools: + for_schools: + bike_index_for_universities: + bike_index_users_provide: + check_out: + embed_a_bike_index_registration_form: + features_amp_pricing: + how_it_works: + keep_campus_bikes_in_order: + make_bike_registration_better: + must_read: + protecting_bikes_on_campus_can_be: + read_about_our_html: + related_articles: + schools_deck: + six_best_features_for_schools: + trusted_by_top_universities: + universities_should_use_bike_index_as_the: + university_of_pittsburgh_partners_with_bi: + weve_designed_a_platform: + your_students_can_register_their_bikes: + packages_list: + forever: + free: + hide_features: + see_features: + sign_up_now: + try_for_free: + year: + layouts: + application: + blog: + donate: + help: + log_in: + logout: + register_a_new_bike: + search_bikes: + sign_up: + stolen_bike: + the_nonprofit_bike_registry: + user_settings: + view_org: + your_bikes: + application_bikehub: + accounts_powered_by_bike_index: + contact: + home: Home + login: + non_profit: + partnership: + register: + teamed_up: + email: + bike_index: + help_prevent_theft: + make_a_donation: + the_bike_index_team: + embed_layout: + error: + please_fix_the_following: + register_through_org: + payments_layout: + be_a_bike_saver: + support_bike_index_today: + until_every_bike_is_safe: + reg_embed: + its_free: + protect_your_bike_today: + register_on_bike_index: + register_your_bike: + revised_messages: + error: + please_fix_the_following: + locales: + en: + nb: + nl: + locks: + edit: + are_you_sure: "¿Estás seguro?" + back_to_viewing_all_locks: + delete_this_lock: + edit_the_lock: + form: + add_the_lock: + additional_notes: + basic: + choose_manufacturer: + examples_of_serial_numbers_found_on_diffe: + has_combination: + has_key: + large_kryptonite_key: + lock_type: + other_lock_manufacturer: + pinhead_key: + pinhead_locking_skewer_key: + small_kryptonite_key: + update_the_lock: + lock_home: + add_a_new_lock: + any_lock_information_you_enter_on_bike_in: + if_you_want_you_can_save_serial_html: + lock_keys_often_have_serial_numbers_so_yo: + lock_type: + manufacturer: + save_information_about_a_lock: + save_information_about_your_bike_lock: + you_can_also_record_your_lock_html: + your_locks: + new: + save_information_about_one_of_your_locks: + manufacturers: + index: + give_us_a_heads_up_in_a_comment_below: + manufacturers_we_know_about: + name: Nombre + oh_no_were_missing_a_manufacturer: + only_makes_components: + thats_not_actually_surprising: + meta_descriptions: + bikes_index: + bikes_new: + bikes_new_stolen: + documentation_api_v1: + documentation_api_v2: + feedbacks_index: + feedbacks_new: + feedbacks_vendor_signup: + info_about: + info_protect_your_bike: + info_resources: + info_serials: + info_spokecard: + info_stolen_bikes: + info_where: + landing_pages_for_law_enforcement: + landing_pages_for_schools: + landing_pages_show: + manufacturers_index: + my_accounts_show: + news_index: + sessions_create: + sessions_new: + stolen_index: + stolen_merging: + users_new: + welcome_index: + meta_titles: + about: + bikes_index: + bikes_new: + bikes_new_stolen: + documentation_api_v1: + feedbacks_index: + feedbacks_new: + feedbacks_vendor_signup: + info_about: + info_serials: + info_spokecard: + info_stolen_bikes: + info_where: + landing_pages_ambassadors_current: + landing_pages_ambassadors_how_to: + landing_pages_ascend: + landing_pages_bike_shop_packages: + landing_pages_campus_packages: + landing_pages_cities_packages: + landing_pages_for_bike_shops: + landing_pages_for_cities: + landing_pages_for_community_groups: + landing_pages_for_law_enforcement: + landing_pages_for_schools: + landing_pages_show: + links: + manufacturers_index: + news_index: + payments_create: + payments_new: + sessions_create: + sessions_new: + stolen_howworks: + stolen_index: + stolen_merging: + tech: + users_accept_terms: + users_accept_vendor_terms: + users_confirm: + users_new: + users_password_reset: + users_request_password_reset: + welcome_goodbye: + welcome_index: + money: + currencies: + en: + en-GB: + es: + nb: + nl: + my_accounts: + edit: + save_changes: + password: + better_password: + for_password_update: + new_password: + new_password_confirmation: + password_helper_text_html: + reset_password: + registration_organizations: + affiliation: + all_bikes_with_organization: + allow_organization_to_edit_bikes_html: + and_other_bikes_count: + bike: + mailing_address: + phone: + register_all_with: + registered_with: + registration_organization_information: + registration_organizations: + student_id: + update_your_address_on_html: + update_your_phone_on_html: + when_not_selected: + root: + absolutely_no_notifications: + add_additional_email: + add_new_phone_number: + additional_email: + address: + any_use_of_your_personal_information_html: + choose_country: + choose_language: + city: + confirmed_emails: + daily_hot_sheet_notifications_html: + give_us_permission_html: + have_multiple_emails: + make_primary_email: + no_notifications_explanation: + notifications_email: + personal_information_for_user: + preferred_language: + primary_email: + receive_the_bike_index_newsletter: + remove_email: + remove_number: + resend_confirmation: + state: + stolen_hot_sheets: + time_single_format: + time_single_format_small: + unconfirmed: + unconfirmed_emails: + verified: + why_you_should_text: + zipcode: + sharing: + choose_file: + create_page: + create_public_page: + example_url: + instagram_handle: + my_awesome_link: + no_instagram: + no_personal_site: + no_please_dont_create_me_a_page: + no_twitter: + page_text: + page_title: + personal_site_url: + preview_page: + profile_avatar: + sharing_and_personal_page_settings: + show_instagram: + show_personal_site: + show_personal_website: + show_twitter: + the_bike_index_can_create_a_page: + this_users_bikes: + title_for_link: + twitter_handle: + will_not_show_up: + your_username_is_the_url_for_your_sharing: + show: + add_a_bike: + add_a_lock: + add_a_photo: + add_it_now: + bike_sticker: + bikes: + combination: + edit: Editar + edit_bike: + generally_connect_to_org: + ignore: + key_serial: + list_a_bike_on_bikefair: + location: + lock_type: + locks: + manufacturer: + mark_bike_stolen: + next: + primary_colors: + register_new_items: + registered: + serial: + sorry_your_bike_was_stolen: + tell_us_more_about_yourself: + thanks_for_adding_your_bike: + to_bike_index_thanks_for_signing_up: + update_your_profile: + updated: + user_bikes: + user_hidden: + want_to_sell_your_bikes: + welcome: + you_have_no_registered_bikes: + you_have_no_registered_locks: + news: + index: + bike_index_blog: + bike_index_blog_feed: + show: + also_published: + by: + organization_invitations: + not_available: + contact_us: + contact_us_if_you_think_were_wrong_html: + perhaps_that_link_has_already_been_used_t: + whoops_that_link_isnt_connected_to_a_bike: + organizations: + embed: + add_a_color: + additional_serial: + choose_color: + choose_country: + city: + currently_registering_a_nonstolen_bike: + department_city: + description_of_the_theft: + eg_if_we_tweet_about_or_someone_searches: + filing_a_police_report_is_important_html: + frame_color: + image_has_been_uploaded: + intersection_or_address: + manufacturer_name: + model_year: + optional_upload_a_photo: + other_manufacturer: + owners_mailing_address: + police_report_number: + receive_notifications_from_bike_index: + register: + registering_a_stolen_bike_click_here: + remove_color: + secondary_color: + select_other_if_manufacturer_isnt_listed: + state: + sticker_id_html: + student_id: + third_color: + this: + unknown_serial: + unknown_year: + unsure_or_unknown: + when_was_it_stolen: + where_was_it_stolen: + your_email_address: + your_phone_number: + zipcode: + embed_create_success: + bike_was_registered_to_you_html: + you_will_receive_an_email_confirmation: + your_bike_has_been_added_to_bike_index: + embed_extended: + add_a_color: + additional_serial: + any_extra_words: + choose_color: + choose_handlebar: + choose_material: + choose_photo: + city: + frame_color: + image_has_been_uploaded: + manufacturer_name: + model_year: + optional_additions: + org_affiliation: + other_defining_features: + other_manufacturer: + owners_email_address: + owners_mailing_address: + owners_phone: + primary_frame_material: + register_this: + remove_color: + secondary_color: + select_other_if_manufacturer_isnt_listed: + state: + sticker_id_html: + student_id: + third_color: + unknown_serial: + unknown_year: + unsure_or_unknown: + zipcode: + new: + bike_index_for_organizations: + new_form: + add_organization: + add_your_organization_to_bike_index: + bike_index_account: + confirm_your_email: + error: + fill_out_the_form_that_will_appear: + filling_out_this_form_will_create_a_new_org: + if_you_dont_want_that_to_be_the_case_html: + log_out: + new_organization: + organization_kind: + organization_name: + please_fix_the_following_errors: + sign_up_for_a_new_account_html: + you_are_already_a_member_of_org_html: + your_current_account_will_be_a_member_html: + organized: + ambassador_dashboards: + getting_started: + 10_tips_for_getting_started_in_your_town: + be_a_part_of_your_local_cycling_culture: + encourage_people_to_watch: + engage_your_local_city_and_cops: + find_and_talk_to_local_bloggers: + grow_your_network_via_bike: + have_twitter_connect: + post_and_rt_stolen_bikes: + promote_bike_index: + ride_your_bike_express_your: + seek_out_local_facebook_groups: + resources: + access_to_quick_communication: + ambassador_resources: + as_an_ambassador_you_have_access_to_a_num: + organizations_sign_up: + page_on_bike_index_html: + periodic_discount_codes: + qr_sticker_instructions: + qr_sticker_instructions_url: + qr_sticker_org_instructions: + qr_sticker_org_instructions_url: + some_additional_resources: + tips_for_talking_to_bike_shops: + tips_for_talking_to_bike_shops_url: + you_can_mark_stolen_bikes: + you_can_send_stolen_messages_html: + youre_a_moderator_on_discuss_html: + show: + actions: Actions + activities: + activities_for_registering_cyclists_html: + activity: + being_a_bike_index_ambassador: + completed: + completed_activities: + leaderboard: + name: Nombre + suggested_activities: + this_page_contains_the_resources_you_need: + welcome_to_your_ambassador_homepage: + bikes: + incompletes: + bike: + email: + incomplete: + matching: + only_resend_with_permission: + org_incomplete_registrations_html: + re_send: + registration: + search: + search_emails: + sent: + through_org: + index: + connected_to_bike_html: + enter_url_of_the_bike_html: + is_currently_linked: + isnt_linked_to_a_bike: + search_org_bikes_html: + update: + list: + added: + bike: + color: + link: + manufacturer: + model: + num_bikes_registered_html: + sent_to: + sent_to_a_new_owner: + sticker: + recoveries: + description: + mfg_model_color_html: + org_recoveries_html: + owner: + recovered_at: + recovery: + render_chart: + show_only_organization_recoveries: + search: + address: + all: + avery: + bike: + color: + create_export_of_vehicles: + email_hidden: + impounded: + link: + manufacturer: + matching_bikes_html: + mfg_model_color_html: + model: + only_impounded_vehicles_html: + only_no_address_html: + only_no_sticker_html: + only_not_impounded_html: + only_stolen_html: + only_with_address_html: + only_with_owner_html: + only_with_stickers_html: + owner_name: + propulsion_type: + registered: + registered_bikes_html: + sent_to: + settings: + status: + status_cell: + sticker: + stickers: + stolen: + stolen_vehicles_html: + updated: + vehicle: + vehicle_type: + view_all_vehicles: + view_just_stolen_vehicles: + visible_columns: + bulk_imports: + error_type: + file: + line: + index: + added: + bikes: + creator: + errors: + exclude_empty_imports: + include_empty_imports: + kind: + new_import: + org_ascend_imports_html: + org_bulk_imports_html: + progress: + unable_to_process: + new: + choose_file: + correct_actual_image_url_html: + csv_file_with_bikes: + doing_an_import: + example_csv_with_all_options: + for_best_results: + if_only_some_of_your_bikes_html: + if_you_are_including_photo_url_html: + importing_stickers_html: + incorrect_image_on_webpage_html: + look_at_example_csv_and_html: + must_have_required_headers_html: + notes_on_successfully_importing: + optional_additions: + our_example_csv_here: + register_bikes_from_a_csv: + required_headers_are_html: + this_will_not_work: + upload_and_begin_import: + we_support_a_few_additional: + you_must_upload_a_dot_csv_html: + your_headers_must_match_html: + show: + ascend_import: + bikes: + bulk_import: + bulk_import_impounded: + color: + created: + creator: + errors: + file: + file_removed: + file_removed_explanation: + impounded_at: + impounded_id: + manufacturer: + model: + progress: + sent_to: + sent_to_a_new_owner: + exports: + index: + bikes_in_export: + created: + creator: + delete: + download: + export: + new_export: + org_exports_html: + progress: + stickers_assigned: + show: + avery_export: + bikes_exported: + bikes_registered_after: + bikes_registered_before: + by: + columns_in_csv: + created: + download_export: + exports: + format: + no_stickers_assigned: + not_assigned: + pending: + progress: + registration_types: + shared_alert_body: + show_bikes_in_export: + show_first_100_bikes_in_export: + specific_bikes: + stickers: + stickers_exported: + stickers_have_been_unassigned: + unable_to_export: + unassign_stickers: + view_avery_labels: + manage_impoundings: + edit: + impound_settings_html: + save: + manages: + location_fields: + address: + choose_country: + city: + location_name: + name: Nombre + phone_number: + remove: + state: + street: + zipcode: + locations: + add_location: + bike_index_partner_map: + display_org_on_map_html: + location_settings_html: + save: + show: + abbreviation: + choose_file: + contact_to_update_html: + delete_organization: + i_would_like_to_terminate_my_account: + name: Nombre + org_email_address_html: + org_settings: + organization_logo: + organization_type: + registration_email: + removal_confirmation: + select_email: + send_emails_directly: + square_image: + stolen_emails: + unclaimed_registration_definition: + update: + when_checked_go_direct: + why_no_direct_by_default: + parking_notifications: + index: + matches_visible: + parking_notifications: + show_details: + address: + bike: + by: + created: + internal_notes: + message: + notification_number: + resolved: + table: + address: + bike: + by: + created: + notification_number: + resolved: + stickers: + edit: + bike: + bike_id_or_url: + bike_is_unavailable: + claimed: + claimed_by: + edit_sticker: + previous_bike: + remove_bike_link: + sticker: + unclaimed: + update: + index: + added_html: + all: + bike: + claimed: + coded: + search: + search_bike_url_or_id: + search_sticker_id: + sticker: + stickers: + unclaimed: + users: + edit: + admin_of_organization: + confirmation: + edit_membership_html: + email: Email + has_not_signed_up_html: + invited: + last_login: + last_login_ip: + member_of_organization: + membership_type: + remove_from_organization: + signed_up: + update: + index: + claimed: + created: + current_users: + emails_are_currently_sent_from_html: + find_by_name_or_email: + invite_more_users: + is_admin: + manage_users: + manually_invite_email: + matching_user: + permitted_domain_info_html: + remaining_invites_html: + search: + sender: + to: + update_email: + user: + you_can_also: + you_have_invited_html: + new: + 1_email_per_line: + admin_of_organization: + automatic_passwordless: + email_youre_inviting: + invite_multiple_emails: + invite_user: + member_of_organization: + membership: + membership_type: + multiple_emails: + remaining_invites_html: + send_invitation: + signing_in_with_permitted_domain_html: + user: + you_have_a_permitted_domain: + you_have_invited_html: + organized_mailer: + custom_message: + subject: + finished_owned_registration: + subject: + finished_registration: + html: + a_correctly_locked_bike: + a_donation_will_prioritize_html: + before_locking_check: + bike_register_with_bike_index: + bike_register_with_bike_index_and_org: + bike_type_thieves_are_jerks: + cable_locks_should_never_be_used: + claim_the_bike_type: + confirm_this_bike_type: + correctly_locking_a_bike: + donating: + give_us_a_heads_up: + hopefully_you_find_the_bike_html: + hopefully_you_find_the_owner_html: + mark_recovered_link_html: + mark_your_bike_recovered: + org_added_a_bike_html: + org_sent_a_bike_html: + pink_power_ulocks_tm: + please_consider_donating_html: + prioritize_your_listing: + protect_your_bike_by_following_these_lock: + protecting_your_bike_here: + read_more_about_protecting_html: + recovered_bike_type: + secure_both_wheels_either_with_two_ulocks: + sign_up_on_bikeindexorg_to_claim_your_bik: + stolen_bike_type: + thanks_for_adding_this_bike_type_you_found: + use_a_ulock: + welcome_to_bike_index: + were_sorry_your_bike_type_was_stolen: + you_added_a_bike_type_on_bike_index: + youre_almost_done_registering: + subject: + finished_stolen_registration: + subject: + organization_invitation: + html: + hello: + join_org: + welcome_to_bike_index: + you_are_a_member: + subject: + partial_registration: + html: + click_below_to_complete_your_registration: + finish_it: + just_a_few_steps_away_html: + youre_almost_done: + subject: + payments: + form: + donation_header: + pay_bike_index: + success: + bike_index_team: + thank_you_for_supporting_bike_index: + we_received_your_payment_of: + xoxo: + your_donation_saved_bikes: + plan_features: + automatic_registration_through_pos: + campus_bike_management_suite: + contact_unfinished_registrants: + create_organization_account: + custom_form_fields: + customize_emails: + department_landing_page: + embed_registration_form: + export_custom_data: + graduated_bikes: + import_registrations_from_previous: + impound_bikes: + law_enforcement_list_html: + mailing_stickers: + organization_dashboard: + priority_programming_support: + qr_sticker: + qr_sticker_scanning_and_messaging: + school_landing_page: + search_bikes_organization: + social_media_and_email_marketing: + staff_accounts: + public_images: + edit: + editing_bike_html: + editing_image: + form: + cancel_update: + do_not_display: + error: + errors_prevented_photo_from_saving: + image_name: + no_one_will_be_able_to_see_this_image_exc: + save_image: + use_this_if_youd_like_to_attach_a_photo: + new: + add_a_public_image: + new_form: + drag_and_drop_html: + upload_photos: + public_image: + keep_image_private: + missing_image: + photo_of_receipt: + photo_of_serial: + photo_of_user_with_bike: + photo_stock: + photo_uncategorized: + processing: + show: + are_you_sure: "¿Estás seguro?" + back_to_images: + bike_image: + destroy: Eliminar + edit: Editar + image_from: + looks_like_this_is_your_image: + recovery_displays: + recovery_display: + bike: + recovered_date: + translated_from_english: + registrations: + create: + follow_link_in_email: + we_sent_an_email_to: + well_do_our_best_to_help_you_recover_it: + youre_not_done: + embed: + bike_manufacturer: + choose_specific_organization_optional: + owner_email: + primary_frame_color: + register: + select_other_if_manufacturer_doesnt_show: + this_bike_is_either_missing_or_stolen: + your: + sessions: + magic_link: + enter_email_address: + get_sign_in_link: + if_not_click_button: + reenter_email: + sign_in: + sign_in_with_magic_link: + unable_to_auth: + you_should_be_signed_in_automatically: + your_email_address: + new: + dont_have_an_account: + email: + forgot_your_password: + get_on_bike_index: + keep_me_logged_in: + log_in: + no_bike_index_account: + or: + password: + sign_in_using_facebook: + sign_in_using_globalid: + sign_in_using_magic_link: + sign_in_using_strava: + sign_up: + shared: + bike_search_form: + anywhere: + doesnt_look_like_serial: + miles_of: + search_bike_descriptions: + search_for_serial_number: + search_owner_email: + submit: + within: + claim_message: + public_resource_reunited_value_html: + registered_your_bike_on_index: + sign_up: + supercharge_if_your_bike_stolen: + to_see_your_bike_sign_up_html: + content_skeleton: + about: + bicycle_serials: + bike_index_news: + bike_index_store: + design_and_developer_resources: + donate: + donate_today: + forum: + help: + how_to_get_your_stolen_bike_back: + make_a_difference: + other_pages: + protect_your_bike: + related: + sign_up_your_organization: + where: + donation_form: + 501c3_nonprofit: + bike_index_is_a_nonprofit_html: + next: + other_amount: + skip: + subheader_1: + subheader_2: + what_does_your_donation_do: + donation_modal: + donation_header: + edit_bike_skeleton: + edit: Editar + owned_but_hasnt_been_claimed_html: + owned_with_permission_to_edit_html: + view_bike: + view_bike_version: + email_bike_box: + color: + color_may_be_incorrect: + found: + make: + serial: + stolen_at: + stolen_from: + errors: + error: + errors_prevented_this_from_being_saved: + faq: + absolutely: + add_a_stolen_bike_link: + add_details: + article_link: + bike_index_is_that_resource: + bike_serial_number: + bike_was_already_stolen: + bikes_are_public_and_searchable: + blog_link: + can_partner_with_bikeindex: + can_thieves_search: + can_you_tell_me_what_bike_by_serial: + comprehensive_public_database: + email_us_html: + everyone_can_register_bikes_for_free: + faqs: + follow_us_html: + free_to_transfer: + go_to_edit_page: + how_bikes_are_verified: + how_can_i_advertise: + how_can_i_stay_up_to_date: + how_does_this_prevent_bike_theft: + in_the_process_of_setting_up_advertising: + not_yet: + organization_signup_html: + organization_signup_link: + other_registries_html: + partner_link: + people_with_good_intentions: + possible_but_uncommon: + read_our_blog_html: + registration_html: + reveal_owner_email_html: + security_by_obscurity_link: + serial_numbers_public: + similar_serials: + the_faster_and_easier_it_is: + this_isnt_optimistic_speculation: + to_learn_more_html: + verification_questions: + visit_or_add_html: + we_care_about_your_privacy: + we_offer_bike_shops: + we_recommend_searching: + we_successfully_recover: + weve_recovered_bikes: + what_about_my_privacy: + what_if_i_sell_my_bike: + while_serial_numbers: + who_can_register_bikes: + why_public: + your_personal_information_is_never_viewed: + footer: + about_bike_index: + bike_index_news: + bike_index_partner_organizations: + bike_index_resources: + contact_us: + help: + list_of_manufacturers: + privacy_policy: + register_a_bike: + sign_up_a_shop_or_organization: + terms_and_conditions: + vendor_terms: + footer_revised: + about: + ambassadors: + api_documentation: + bike_index: + bike_manufacturer_list: + bike_shops: + blog: + change_preferred_language: + cities: + community_groups: + copyright_html: + design_logos: + dev_resources: + donate: + faq: + help: + how_to_get_your_stolen_bike_back: + language: + law_enforcement: + press_inquiries: + privacy_policy: + protect_your_bike: + resources: + schools_and_universities: + security: + stolen_bike_map: + stolen_bike_recoveries: + store: + support_us: + terms_and_conditions: + vendor_terms: + where_we_are: + who_we_serve: + form_well_footer_save: + save_changes: + header_nav: + log_in: + log_out: + preferences: + sign_up: + superuser_home: + you: + your_bikes: + your_preferences: + law_enforcement_donation_modal: + bikeindex_is_a_nonprofit: + contact_bike_owners: + email_for_access_html: + greeting: + law_enforcement_features: + multiple_serial_search_pane: + thank_you: + thanks_for_using_bike_index: + organized_menu_items: + add_a_bike: + ascend_imports: + bulk_imports: + custom_emails: + discuss: + exports: + getting_started: + graduated_notifications: + impounded_bikes: + impounded_claims: + incomplete_registrations: + lightspeed_integration_panel: + manage_impounding: + manage_users: + model_audits: + multi_serial_search: + org_bikes: + org_dashboard: + org_locations: + org_profile: + parking_notification_unregistered: + parking_notifications: + recoveries: + registration_stickers: + resources: + stolen_hot_sheet: + stolen_hot_sheet_configuration: + stolen_message: + super_admin_view: + organized_skeleton: + additional_features_html: + admin_panel: + how_integration_works: + integrate_bike_index_with_ascend: + integrate_bike_index_with_lightspeed: + link_to_register_html: + other_point_of_sale_system: + read_a_full_explanation_html: + register_bikes_with_link_html: + streamlined_bike_shop_registration_page: + subscription_expired_html: + use_ascend: + use_lightspeed_retail_pos: + viewing_our_streamlined_page: + period_select: + all: + custom: + day: + from: + hour: + next: + past: + seven_days: + thirty_days: + to: + update: + year: + user_general_alert: + add_location_theft_bike_title_html: + add_photo_theft_bike_title_html: + confirm_your_phone_number: + location_critical_html: + missing_stolen_photo_title: + photo_critical_html: + stolen_missing_location_title: + verification_code: + verify_number: + without_location_all_is_lost: + without_photo_all_is_lost: + stolen: + index: + ambassador: + bike_index: + bike_index_will_broadcast: + check_out_your_local_flea_market: + donation: + error: + file_a_police_report: + if_you_are_here_your_bike_was_probably_stolen: + keep_an_eye_on_craigslist: + list_recent_stolen_bikes_html: + look_for_local_stolen_bike_groups_on_face: + make_sure_your_bike_is_registered_html: + other_recovery_tools: + please_fix_the_following: + please_login_to_make_report_html: + register_it: + report_a_bicycle_chop_shop: + report_bike_theft_issues: + report_someone_selling_a_stolen_bike: + reporting_your_own_bike_stolen_html: + send_alert: + sign_in: + stolen_widget: + tell_everyone_you_know: + we_wish_you_the_best_of_luck_html: + what_happens_next: + what_to_do_if_your_bike_is_stolen: + where_is_this_happening: + your_email_address: + your_local_police_department_will_do_what: + theft_alert_plans: + theft_alert_plan: + days: + user_embeds: + show: + bike: + my_indexed_bikes: + no_photo: + users: + accept_terms: + i_agree_to_tos_html: + submit: Enviar + accept_vendor_terms: + i_agree_to_tos_html: + submit: Enviar + confirm_error_404: + we_couldnt_find_a_user_with_that_id: + woops: + confirm_error_bad_token: + could_not_find_matching_ticket: + woops: + new: + agree_bikeindex_bikehub_toc_html: + agree_bikeindex_toc_html: + already_have_a_bike_index_account: + already_have_an_account: + better_password: + get_bike_indexs_newsletter: + get_on_bike_index: + log_in: + password_helper_text_html: + sign_up: + sign_up_using_facebook: + sign_up_using_globalid: + sign_up_using_strava: + terms_and_conditions: + please_confirm_email: + did_not_get_an_email: + please_verify_your_email: + resend_confirmation_email: + thanks_for_signing_up_for_bike_index: + we_sent_an_email: + we_sent_an_email_to_user_email_html: + request_password_reset_form: + enter_the_email_address: + reset_your_password: + your_email_address: + send_password_reset_email: + follow_the_link_back: + password_reset: + weve_sent_an_email: + show: + bikes: + stolen: + this_user_has_no_bikes_yet: + this_users_bikes: + unsubscribe: + if_not_click_button: + unsubscribe: + you_should_be_unsubscribed_automatically: + update_password_form_with_reset_token: + and_try_not_to_forget_it: + better_password: + choose_a_new_password: + password: Contraseña + password_confirmation: + password_helper_text_html: + update_password: + update_your_password: + welcome: + choose_registration: + add_a_bike_through: + add_a_stolen_bike: + add_abandoned_bike_you_found: + add_your_own_bike: + register_bike: + goodbye: + come_back_soon: + youve_been_logged_out: + index: + alert_the_community: + bike_index_statistics: + bikes_registered_this_week: + but_how_does_it_work: + hero: + how_it_works: + identifying_your_bike: + if_your_bike_goes_missing: + partner_organizations: + read_more_recovery_stories: + recent_recovery_stories: + recover_your_bike_for_free: + register_now: + register_your_bike: + stolen_bikes_recovered: + stolen_bikes_registered: + the_community_responds: + total_bikes_registered: + total_recovery_value: + used_by: + value_of_bikes_recovered: + you_get_your_bike_back: + recovery_stories: + recovery_stories: + update_browser: + go_here_to_learn_more: + oh_no: + unsupported_browser: From e4abafa1cb180d6319c34c4b4403f557d7a5f993 Mon Sep 17 00:00:00 2001 From: Seyamack Afzali Date: Fri, 8 Dec 2023 20:23:18 -0600 Subject: [PATCH 04/13] removed es fron front end, added tests for nb + es --- app/helpers/localization_helper.rb | 3 +-- spec/helpers/localization_helper_spec.rb | 34 ++++++++++++++++++++++-- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/app/helpers/localization_helper.rb b/app/helpers/localization_helper.rb index e1757d0ef6..8e70641938 100644 --- a/app/helpers/localization_helper.rb +++ b/app/helpers/localization_helper.rb @@ -16,8 +16,7 @@ def theft_alert_plan_title(plan) # [, ] def language_choices @language_choices ||= - I18n - .available_locales + (I18n.available_locales - [:es]) .map { |locale| [t(locale, scope: [:locales]), locale.to_s] } .sort_by { |language_name, _| language_name.downcase } end diff --git a/spec/helpers/localization_helper_spec.rb b/spec/helpers/localization_helper_spec.rb index faa9eda442..a67c336ece 100644 --- a/spec/helpers/localization_helper_spec.rb +++ b/spec/helpers/localization_helper_spec.rb @@ -8,7 +8,8 @@ choices = [ ["English", "en"], ["Nederlands (Dutch)", "nl"], - ["Norwegian (Bokmål)", "nb"] + ["Norwegian (Bokmål)", "nb"], + ["Spanish", "es"] ] expect(language_choices).to eq(choices) end @@ -21,7 +22,36 @@ choices = [ ["English (Engels)", "en"], ["Nederlands", "nl"], - ["Noors (Bokmål)", "nb"] + ["Noors (Bokmål)", "nb"], + ["Spaans", "es"] + ] + expect(language_choices).to eq(choices) + end + end + end + + context "in Norwegian" do + it "returns with norwegian included" do + I18n.with_locale(:nb) do + choices = [ + ["English (Engelsk)", "en"], + ["Nederlands (Nederlandsk)", "nl"], + ["Norsk (Bokmål)", "nb"], + ["Spansk", "es"] + ] + expect(language_choices).to eq(choices) + end + end + end + + context "in Spanish" do + it "returns with spanish included" do + I18n.with_locale(:es) do + choices = [ + ["English (Inglés)", "en"], + ["Nederlands (Holandés)", "nl"], + ["Noruego (Bokmål)", "nb"], + ["Español", "es"] ] expect(language_choices).to eq(choices) end From f913d1ea48499757960a1c81b8354269aa638ed6 Mon Sep 17 00:00:00 2001 From: Seyamack Afzali Date: Sat, 9 Dec 2023 13:27:02 -0600 Subject: [PATCH 05/13] updated translation choice nomenclature --- spec/helpers/localization_helper_spec.rb | 27 +++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/spec/helpers/localization_helper_spec.rb b/spec/helpers/localization_helper_spec.rb index 15cda11ca7..3baace95c6 100644 --- a/spec/helpers/localization_helper_spec.rb +++ b/spec/helpers/localization_helper_spec.rb @@ -8,7 +8,8 @@ choices = [ ["English", "en"], ["Nederlands (Dutch)", "nl"], - ["Norwegian (Bokmål)", "nb"] + ["Norsk Bokmål (Norwegian Bokmål)", "nb"], + ["Español (Spanish)", "es"] ] expect(language_choices).to eq(choices) end @@ -21,7 +22,8 @@ choices = [ ["English (Engels)", "en"], ["Nederlands", "nl"], - ["Noors (Bokmål)", "nb"] + ["Norsk Bokmål (Noors)", "nb"], + ["Español (Spaans)", "es"] ] expect(language_choices).to eq(choices) end @@ -32,9 +34,24 @@ it "returns with norwegian included" do I18n.with_locale(:nb) do choices = [ - ["Engelsk", "en"], - ["Nederlands (nederlandsk)", "nl"], - ["norsk (bokmål)", "nb"] + ["English (Engelsk)", "en"], + ["Nederlands (Nederlandsk)", "nl"], + ["Norsk Bokmål", "nb"], + ["Español (Spansk)", "es"] + ] + expect(language_choices).to eq(choices) + end + end + end + + context "in Spanish" do + it "returns with spanish included" do + I18n.with_locale(:es) do + choices = [ + ["English (Inglés)", "en"], + ["Nederlands (Holandés)", "nl"], + ["Norsk Bokmål (Noruego)", "nb"], + ["Español", "es"] ] expect(language_choices).to eq(choices) end From ea4c8dae7290651b9b249d1f14d7b768099e4faa Mon Sep 17 00:00:00 2001 From: Seyamack Afzali Date: Tue, 12 Dec 2023 20:02:20 -0600 Subject: [PATCH 06/13] reverting to translation choices that are live --- spec/helpers/localization_helper_spec.rb | 29 +++++------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/spec/helpers/localization_helper_spec.rb b/spec/helpers/localization_helper_spec.rb index 3baace95c6..c1d8d8bade 100644 --- a/spec/helpers/localization_helper_spec.rb +++ b/spec/helpers/localization_helper_spec.rb @@ -8,8 +8,7 @@ choices = [ ["English", "en"], ["Nederlands (Dutch)", "nl"], - ["Norsk Bokmål (Norwegian Bokmål)", "nb"], - ["Español (Spanish)", "es"] + ["Norwegian (Bokmål)", "nb"] ] expect(language_choices).to eq(choices) end @@ -22,8 +21,7 @@ choices = [ ["English (Engels)", "en"], ["Nederlands", "nl"], - ["Norsk Bokmål (Noors)", "nb"], - ["Español (Spaans)", "es"] + ["Noors (Bokmål)", "nb"] ] expect(language_choices).to eq(choices) end @@ -34,28 +32,13 @@ it "returns with norwegian included" do I18n.with_locale(:nb) do choices = [ - ["English (Engelsk)", "en"], - ["Nederlands (Nederlandsk)", "nl"], - ["Norsk Bokmål", "nb"], - ["Español (Spansk)", "es"] - ] - expect(language_choices).to eq(choices) - end - end - end - - context "in Spanish" do - it "returns with spanish included" do - I18n.with_locale(:es) do - choices = [ - ["English (Inglés)", "en"], - ["Nederlands (Holandés)", "nl"], - ["Norsk Bokmål (Noruego)", "nb"], - ["Español", "es"] + ["Engelsk", "en"], + ["Nederlands (nederlandsk)", "nl"], + ["norsk (bokmål)", "nb"] ] expect(language_choices).to eq(choices) end end end end -end +end \ No newline at end of file From d43086c0605abcd68b4ba3a72e1a92a2a10dcbf2 Mon Sep 17 00:00:00 2001 From: Seyamack Afzali Date: Tue, 12 Dec 2023 20:24:28 -0600 Subject: [PATCH 07/13] updated locale for commented tests --- spec/requests/locale_detection_request_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/requests/locale_detection_request_spec.rb b/spec/requests/locale_detection_request_spec.rb index e41fb87f9c..4c664f28be 100644 --- a/spec/requests/locale_detection_request_spec.rb +++ b/spec/requests/locale_detection_request_spec.rb @@ -50,7 +50,7 @@ expect(response.body).to match(/fietsregistratie/i) get "/", params: {locale: :nb} expect(response.body).to match(/sykkelregistrering/i) - # get "/", params: {locale: :nb} + # get "/", params: {locale: :es} # expect(response.body).to match(/registro de bicicletas/i) end end @@ -76,7 +76,7 @@ get "/", params: {}, headers: {"HTTP_ACCEPT_LANGUAGE" => "nb,en;q=0.9"} expect(response.body).to match(/sykkelregistrering/i) - # get "/", params: {}, headers: {"HTTP_ACCEPT_LANGUAGE" => "nb,en;q=0.9"} + # get "/", params: {}, headers: {"HTTP_ACCEPT_LANGUAGE" => "es,en;q=0.9"} # expect(response.body).to match(/registro de bicicletas/i) end end From f3ca4a3a80b0882620a4a1db72fcf81d3e7e1f5e Mon Sep 17 00:00:00 2001 From: Seyamack Afzali Date: Tue, 12 Dec 2023 20:29:03 -0600 Subject: [PATCH 08/13] why not, let's test this --- .../requests/locale_detection_request_spec.rb | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/spec/requests/locale_detection_request_spec.rb b/spec/requests/locale_detection_request_spec.rb index 4c664f28be..ce3949a127 100644 --- a/spec/requests/locale_detection_request_spec.rb +++ b/spec/requests/locale_detection_request_spec.rb @@ -36,9 +36,9 @@ get "/" expect(response.body).to match(/sykkelregistrering/i) - # current_user.update(preferred_language: :es) - # get "/" - # expect(response.body).to match(/registro de bicicletas/i) + current_user.update(preferred_language: :es) + get "/" + expect(response.body).to match(/registro de bicicletas/i) end end @@ -50,8 +50,8 @@ expect(response.body).to match(/fietsregistratie/i) get "/", params: {locale: :nb} expect(response.body).to match(/sykkelregistrering/i) - # get "/", params: {locale: :es} - # expect(response.body).to match(/registro de bicicletas/i) + get "/", params: {locale: :es} + expect(response.body).to match(/registro de bicicletas/i) end end @@ -76,8 +76,8 @@ get "/", params: {}, headers: {"HTTP_ACCEPT_LANGUAGE" => "nb,en;q=0.9"} expect(response.body).to match(/sykkelregistrering/i) - # get "/", params: {}, headers: {"HTTP_ACCEPT_LANGUAGE" => "es,en;q=0.9"} - # expect(response.body).to match(/registro de bicicletas/i) + get "/", params: {}, headers: {"HTTP_ACCEPT_LANGUAGE" => "es,en;q=0.9"} + expect(response.body).to match(/registro de bicicletas/i) end end @@ -93,13 +93,13 @@ context "given multiple detected locales" do include_context :request_spec_logged_in_as_user - # it "gives highest precedence to query param" do - # current_user.update_attribute :preferred_language, :es - # get "/", params: {locale: :nl}, headers: {"HTTP_ACCEPT_LANGUAGE" => "en-US,en;q=0.9"} - # expect(response.body).to match(/fietsregistratie/i) - # # It doesn't reset users preferences based on request - # expect(current_user.reload.preferred_language).to eq "es" - # end + it "gives highest precedence to query param" do + current_user.update_attribute :preferred_language, :es + get "/", params: {locale: :nl}, headers: {"HTTP_ACCEPT_LANGUAGE" => "en-US,en;q=0.9"} + expect(response.body).to match(/fietsregistratie/i) + # It doesn't reset users preferences based on request + expect(current_user.reload.preferred_language).to eq "es" + end it "gives secondary precedence to user preference" do current_user.update_attribute :preferred_language, :nl From 6826bb23ad917963d6d107bc12acf4f4d697acf1 Mon Sep 17 00:00:00 2001 From: Seyamack Afzali Date: Mon, 25 Dec 2023 19:55:29 -0600 Subject: [PATCH 09/13] updated localization helper specs --- spec/helpers/localization_helper_spec.rb | 38 +++++++++++++++++------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/spec/helpers/localization_helper_spec.rb b/spec/helpers/localization_helper_spec.rb index c1d8d8bade..c7f7c12431 100644 --- a/spec/helpers/localization_helper_spec.rb +++ b/spec/helpers/localization_helper_spec.rb @@ -8,7 +8,8 @@ choices = [ ["English", "en"], ["Nederlands (Dutch)", "nl"], - ["Norwegian (Bokmål)", "nb"] + ["Norsk Bokmål (Norwegian)", "nb"], + #["Español (Spanish)", "es"] ] expect(language_choices).to eq(choices) end @@ -21,7 +22,8 @@ choices = [ ["English (Engels)", "en"], ["Nederlands", "nl"], - ["Noors (Bokmål)", "nb"] + ["Norsk Bokmål (Noors)", "nb"], + #["Español (Spaans)", "es"] ] expect(language_choices).to eq(choices) end @@ -31,14 +33,30 @@ context "in Norwegian" do it "returns with norwegian included" do I18n.with_locale(:nb) do - choices = [ - ["Engelsk", "en"], - ["Nederlands (nederlandsk)", "nl"], - ["norsk (bokmål)", "nb"] - ] - expect(language_choices).to eq(choices) + I18n.with_locale(:nb) do + choices = [ + ["English (Engelsk)", "en"], + ["Nederlands (Nederlandsk)", "nl"], + ["Norsk Bokmål", "nb"], + #["Español (Spansk)", "es"] + ] + expect(language_choices).to eq(choices) + end end end + + # context "in Spanish" do + # it "returns with spanish included" do + # I18n.with_locale(:es) do + # choices = [ + # ["English (Inglés)", "en"], + # ["Nederlands (Holandés)", "nl"], + # ["Norsk Bokmål (Noruego)", "nb"], + # ["Español", "es"] + # ] + # expect(language_choices).to eq(choices) + # end + # end + # end end - end -end \ No newline at end of file + end \ No newline at end of file From 1b3f7979e2fde36a54eb188214ee1dc0fe89e144 Mon Sep 17 00:00:00 2001 From: Seyamack Afzali Date: Mon, 25 Dec 2023 20:03:50 -0600 Subject: [PATCH 10/13] removed duplicate line --- spec/helpers/localization_helper_spec.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/helpers/localization_helper_spec.rb b/spec/helpers/localization_helper_spec.rb index c7f7c12431..066a79369b 100644 --- a/spec/helpers/localization_helper_spec.rb +++ b/spec/helpers/localization_helper_spec.rb @@ -33,7 +33,6 @@ context "in Norwegian" do it "returns with norwegian included" do I18n.with_locale(:nb) do - I18n.with_locale(:nb) do choices = [ ["English (Engelsk)", "en"], ["Nederlands (Nederlandsk)", "nl"], From 01eeefa7c843b3c12a43e2f63345ee2c4b3dc586 Mon Sep 17 00:00:00 2001 From: Seyamack Afzali Date: Tue, 21 May 2024 10:23:19 -0500 Subject: [PATCH 11/13] updating requested language choices --- config/initializers/translation.rb | 2 +- spec/helpers/localization_helper_spec.rb | 54 +++++++++++++++++++++--- 2 files changed, 48 insertions(+), 8 deletions(-) diff --git a/config/initializers/translation.rb b/config/initializers/translation.rb index 0beca27cfa..a91a5571c2 100644 --- a/config/initializers/translation.rb +++ b/config/initializers/translation.rb @@ -3,7 +3,7 @@ TranslationIO.configure do |config| config.api_key = ENV["TRANSLATION_IO_API_KEY"] config.source_locale = "en" - config.target_locales = %w[nl nb es] + config.target_locales = %w[nl nb es it he] # Uncomment this if you don't want to use gettext config.disable_gettext = true diff --git a/spec/helpers/localization_helper_spec.rb b/spec/helpers/localization_helper_spec.rb index 066a79369b..02e6267997 100644 --- a/spec/helpers/localization_helper_spec.rb +++ b/spec/helpers/localization_helper_spec.rb @@ -9,7 +9,9 @@ ["English", "en"], ["Nederlands (Dutch)", "nl"], ["Norsk Bokmål (Norwegian)", "nb"], - #["Español (Spanish)", "es"] + #["Español (Spansk)", "es"], + #["Italiano (Italiensk)", "it"], + #["עִברִית (Hebraisk)", "he"], ] expect(language_choices).to eq(choices) end @@ -17,13 +19,15 @@ end context "in Dutch" do - it "returns with dutch included" do + it "returns with Dutch included" do I18n.with_locale(:nl) do choices = [ ["English (Engels)", "en"], ["Nederlands", "nl"], ["Norsk Bokmål (Noors)", "nb"], - #["Español (Spaans)", "es"] + #["Español (Spaans)", "es"], + #["Italiano (Italiaans)", "it"], + #["עִברִית (Hebreeuws)", "he"], ] expect(language_choices).to eq(choices) end @@ -31,13 +35,15 @@ end context "in Norwegian" do - it "returns with norwegian included" do + it "returns with Norwegian included" do I18n.with_locale(:nb) do choices = [ ["English (Engelsk)", "en"], ["Nederlands (Nederlandsk)", "nl"], ["Norsk Bokmål", "nb"], - #["Español (Spansk)", "es"] + #["Español (Spansk)", "es"], + #["Italiano (Italiensk)", "it"], + #["עִברִית (Hebraisk)", "he"], ] expect(language_choices).to eq(choices) end @@ -45,13 +51,47 @@ end # context "in Spanish" do - # it "returns with spanish included" do + # it "returns with Spanish included" do # I18n.with_locale(:es) do # choices = [ # ["English (Inglés)", "en"], # ["Nederlands (Holandés)", "nl"], # ["Norsk Bokmål (Noruego)", "nb"], - # ["Español", "es"] + # ["Español", "es"], + # ["Italiano (Italiano)", "it"], + # ["עִברִית (Hebreo)", "he"], + # ] + # expect(language_choices).to eq(choices) + # end + # end + # end + + # context "in Italian" do + # it "returns with Italian included" do + # I18n.with_locale(:it) do + # choices = [ + # ["English (Inglese)", "en"], + # ["Nederlands (Olandese)", "nl"], + # ["Norsk Bokmål (Norvegese)", "nb"], + # ["Español (Spagnolo)", "es"], + # ["Italiano", "it"], + # ["עִברִית (Ebraico)", "he"], + # ] + # expect(language_choices).to eq(choices) + # end + # end + # end + + # context "in Hebrew" do + # it "returns with Hebrew included" do + # I18n.with_locale(:he) do + # choices = [ + # ["English (אנגלית)", "en"], + # ["Nederlands (הוֹלַנדִי)", "nl"], + # ["Norsk Bokmål (נורבגית)", "nb"], + # ["Español (ספרדית)", "es"], + # ["Italiano (אִיטַלְקִית)", "it"], + # ["עִברִית", "he"], # ] # expect(language_choices).to eq(choices) # end From c645d50988fc0cb27a609ebf9b46713890844fad Mon Sep 17 00:00:00 2001 From: Seth Herr Date: Wed, 29 May 2024 08:06:18 -0700 Subject: [PATCH 12/13] rake translation:sync --- config/locales/.translation_io | 2 +- config/locales/localization.he.yml | 66 + config/locales/localization.it.yml | 67 + config/locales/translation.he.yml | 4501 +++++++++++++++++++++++++++ config/locales/translation.it.yml | 4539 ++++++++++++++++++++++++++++ 5 files changed, 9174 insertions(+), 1 deletion(-) create mode 100644 config/locales/localization.he.yml create mode 100644 config/locales/localization.it.yml create mode 100644 config/locales/translation.he.yml create mode 100644 config/locales/translation.it.yml diff --git a/config/locales/.translation_io b/config/locales/.translation_io index ddb4d1d45e..4e44c48f88 100644 --- a/config/locales/.translation_io +++ b/config/locales/.translation_io @@ -1,2 +1,2 @@ --- -timestamp: 1702403356 +timestamp: 1716995126 diff --git a/config/locales/localization.he.yml b/config/locales/localization.he.yml new file mode 100644 index 0000000000..77d157dec2 --- /dev/null +++ b/config/locales/localization.he.yml @@ -0,0 +1,66 @@ +# THIS FILE CONTAINS LOCALIZATION KEYS : date and number formats, number precisions, +# number separators and all non-textual values depending on the language. +# These values must not reach the translator, so they are separated in this file. +# +# More info here: https://translation.io/blog/gettext-is-better-than-rails-i18n#localization +# +# You can edit and/or add new localization keys here, they won't be touched by Translation.io. +# +# If you want to add a new localization key prefix, use the option described here: +# https://github.com/translation/rails#custom-localization-key-prefixes +# +--- +he: + date: + formats: + default: "%d-%m-%Y" + long: "%e ב%B, %Y" + short: "%e %b" + order: + - :day + - :month + - :year + number: + currency: + format: + delimiter: "," + format: "%n %u" + precision: 2 + separator: "." + significant: false + strip_insignificant_zeros: false + unit: "₪" + format: + delimiter: "," + precision: 3 + separator: "." + significant: false + strip_insignificant_zeros: false + human: + decimal_units: + format: "%n %u" + units: + unit: '' + format: + delimiter: '' + precision: 3 + significant: true + strip_insignificant_zeros: true + storage_units: + format: "%n %u" + percentage: + format: + delimiter: '' + precision: + format: + delimiter: '' + support: + array: + last_word_connector: " ו" + two_words_connector: " ו" + words_connector: ", " + time: + formats: + default: "%a %d %b %H:%M:%S %Z %Y" + long: "%d ב%B, %Y %H:%M" + short: "%d %b %H:%M" diff --git a/config/locales/localization.it.yml b/config/locales/localization.it.yml new file mode 100644 index 0000000000..81ef6ccdb3 --- /dev/null +++ b/config/locales/localization.it.yml @@ -0,0 +1,67 @@ +# THIS FILE CONTAINS LOCALIZATION KEYS : date and number formats, number precisions, +# number separators and all non-textual values depending on the language. +# These values must not reach the translator, so they are separated in this file. +# +# More info here: https://translation.io/blog/gettext-is-better-than-rails-i18n#localization +# +# You can edit and/or add new localization keys here, they won't be touched by Translation.io. +# +# If you want to add a new localization key prefix, use the option described here: +# https://github.com/translation/rails#custom-localization-key-prefixes +# +--- +it: + date: + formats: + default: "%d/%m/%Y" + long: "%d %B %Y" + short: "%d %b" + order: + - :day + - :month + - :year + number: + currency: + format: + delimiter: "." + format: "%n %u" + precision: 2 + separator: "," + significant: false + strip_insignificant_zeros: false + unit: "€" + format: + delimiter: "." + precision: 2 + separator: "," + significant: false + strip_insignificant_zeros: false + human: + decimal_units: + format: "%n %u" + units: + unit: '' + format: + delimiter: '' + precision: 3 + significant: true + strip_insignificant_zeros: true + storage_units: + format: "%n %u" + percentage: + format: + delimiter: '' + format: "%n%" + precision: + format: + delimiter: '' + support: + array: + last_word_connector: " e " + two_words_connector: " e " + words_connector: ", " + time: + formats: + default: "%a %d %b %Y, %H:%M:%S %z" + long: "%d %B %Y %H:%M" + short: "%d %b %H:%M" diff --git a/config/locales/translation.he.yml b/config/locales/translation.he.yml new file mode 100644 index 0000000000..a0289c9dba --- /dev/null +++ b/config/locales/translation.he.yml @@ -0,0 +1,4501 @@ +# WARNING. THIS FILE WAS AUTO-GENERATED BY THE TRANSLATION GEM. +# IF YOU UPDATE IT, YOUR CHANGES WILL BE LOST AT THE NEXT SYNC. +# +# To update this file, use this translation interface: +# https://translation.io/bikeindex/bike_index/he +# +--- +he: + gflash: + titles: + warning: + error: + notice: + progress: + success: + date: + day_names: + - ראשון + - שני + - שלישי + - רביעי + - חמישי + - שישי + - שבת + abbr_day_names: + - א + - ב + - ג + - ד + - ה + - ו + - ש + month_names: + - + - ינואר + - פברואר + - מרץ + - אפריל + - מאי + - יוני + - יולי + - אוגוסט + - ספטמבר + - אוקטובר + - נובמבר + - דצמבר + abbr_month_names: + - + - ינו + - פבר + - מרץ + - אפר + - מאי + - יונ + - יול + - אוג + - ספט + - אוק + - נוב + - דצמ + time: + am: am + pm: pm + number: + human: + storage_units: + units: + byte: + one: בייט + other: בתים + kb: קילו-בייט + mb: מגה-בייט + gb: ג'יגה-בייט + tb: טרה-בייט + pb: + eb: + decimal_units: + units: + thousand: אלף + million: מיליון + billion: מיליארד + trillion: טריליון + quadrillion: קודריליון + errors: + format: "%{attribute} %{message}" + messages: + model_invalid: 'האימות נכשל: %{errors}' + inclusion: לא נכלל ברשימה + exclusion: לא זמין + invalid: לא תקין + confirmation: לא תואם לאישורו + accepted: חייב באישור + empty: לא יכול להיות ריק + blank: לא יכול להיות ריק + present: + too_long: + one: + other: + too_short: + one: + other: + wrong_length: + one: + other: + not_a_number: חייב להיות מספר + not_an_integer: חייב להיות מספר שלם + greater_than: חייב להיות גדול מ- %{count} + greater_than_or_equal_to: חייב להיות גדול או שווה ל- %{count} + equal_to: חייב להיות שווה ל- %{count} + less_than: חייב להיות קטן מ- %{count} + less_than_or_equal_to: חייב להיות קטן או שווה ל- %{count} + other_than: + odd: חייב להיות אי זוגי + even: חייב להיות זוגי + required: + taken: כבר בשימוש + carrierwave_processing_error: + carrierwave_integrity_error: + carrierwave_download_error: + extension_white_list_error: + extension_black_list_error: + rmagick_processing_error: + mime_types_processing_error: + mini_magick_processing_error: + in: + invalid_currency: + record_invalid: 'האימות נכשל: %{errors}' + template: + body: 'אנא בדוק את השדות הבאים:' + header: + one: 'לא ניתן לשמור את ה%{model}: שגיאה אחת' + other: 'לא ניתן לשמור את ה%{model}: %{count} שגיאות.' + bad_request: + explanation: + send_me_back: + not_found: + explanation: + send_me_back: + server_error: + explanation: + send_me_back: + unauthorized: + explanation: + send_me_back: + unprocessable_entity: + contact: + contact_email: + explanation_html: + send_me_back: + activerecord: + errors: + messages: + record_invalid: 'האימות נכשל: %{errors}' + restrict_dependent_destroy: + has_one: + has_many: + access_denied: + admin_authenticator_not_configured: + credential_flow_not_configured: + invalid_client: + invalid_code_challenge_method: + invalid_grant: + invalid_redirect_uri: + invalid_request: + missing_param: + request_not_authorized: + unknown: + invalid_scope: + invalid_token: + expired: + revoked: + unknown: + resource_owner_authenticator_not_configured: + revoke: + unauthorized: + server_error: + temporarily_unavailable: + unauthorized_client: + unsupported_grant_type: + unsupported_response_mode: + unsupported_response_type: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: + invalid_uri: + unspecified_scheme: + relative_uri: + secured_uri: + forbidden_uri: + scopes: + not_match_configured: + bike: + not_found: + bike_sticker: + not_found: + unauthorized_to_claim: + export: + required: + impound_record: + user_not_authorized: + manufacturer: + cannot_match_a_color_name: + organization_message: + latlon_required: + required: + parking_notification: + address_required: + payment: + requires_email_or_org: + recovery_display: + quote_too_long: + theft_alert: + must_be_later_than_start_time: + must_be_present: + user: + email_already_exists: + not_an_available_language: + organization: + duplicate_short_name: + attributes: + doorkeeper/application: + name: + redirect_uri: + scopes: + access_grants: + access_tokens: + authorized_applications: + authorized_tokens: + can_send_stolen_notifications: + is_internal: + owner_type: + secret: + uid: + ad: + body: + image: + live: + target_url: + title: + ambassador: + ambassador_task_assignments: + ambassador_tasks: + auth_token: + avatar: + banned: + can_send_many_stolen_notifications: + city: + confirmation_token: טוקן אימות + confirmed: + created_bikes: + created_ownerships: + creation_states: + current_ownerships: + currently_owned_bikes: + description: + developer: + email: אימייל + integrations: + last_login_at: + last_login_ip: + latitude: + locks: + longitude: + magic_link_token: + memberships: + my_bikes_hash: + name: + notification_newsletters: + notification_unstolen: + oauth_applications: + organization_embeds: + organizations: + owned_bikes: + ownerships: + partner_data: + password: סיסמא + password_digest: + password_reset_token: + payments: + phone: + preferred_language: + received_stolen_notifications: + sent_memberships: + sent_stolen_notifications: + show_bikes: + show_phone: + show_twitter: + show_website: + street: + subscriptions: + superuser: + terms_of_service: + title: + twitter: + user_emails: + username: + vendor_terms_of_service: + website: + when_vendor_terms_of_service: + zipcode: + ambassador_task: + ambassador_task_assignments: + ambassadors: + description: + title: + ambassador_task_assignment: + completed_at: + b_param: + bike_errors: + bike_title: + email: אימייל + id_token: + image: + image_processed: + image_tmp: + old_params: + origin: + params: + bike: + abandoned: + all_description: + approved_stolen: + b_params: + belt_drive: + bike_organizations: + bike_stickers: + cached_data: + can_edit_claimed_bike_organizations: + can_edit_claimed_organizations: + coaster_brake: + components: + creation_states: + cycle_type: + description: + duplicate_bike_groups: + example: + extra_registration_number: + frame_material: + frame_model: + frame_size: + frame_size_number: + frame_size_unit: + front_tire_narrow: + handlebar_type: + hidden: + is_for_sale: + listing_order: + made_without_serial: + manufacturer_other: + mnfg_name: + name: + normalized_serial_segments: + number_of_seats: + organizations: + owner_email: + ownerships: + pdf: + propulsion_type: + public_images: + rear_tire_narrow: + recovered_records: + registered_new: + serial_normalized: + serial_number: + stock_photo_url: + stolen: + stolen_notifications: + stolen_records: + thumb_path: + video_embed: + year: שנה + zipcode: + bike_organization: + can_not_edit_claimed: + deleted_at: + bike_sticker: + claimed_at: + code: + code_integer: + code_prefix: + kind: + bike_sticker_batch: + bike_stickers: + code_number_length: + notes: + blog: + body: + body_abbr: + description_abbr: + index_image: + index_image_lg: + is_listicle: + listicles: + old_title_slug: + public_images: + published: + published_at: + tags: + title: + title_slug: + bulk_import: + bikes: + creation_states: + file: + import_errors: + is_ascend: + no_notify: + progress: + cgroup: + ctypes: + description: + name: + slug: + color: + bikes: + display: + name: + paints: + priority: + component: + component_model: + ctype_other: + description: + front: + is_stock: + manufacturer_other: + rear: + serial_number: + year: שנה + country: + iso: + locations: + name: + stolen_records: + creation_state: + is_bulk: + is_new: + is_pos: + origin: + pos_kind: + ctype: + components: + has_multiple: + image: + name: + secondary_name: + slug: + customer_contact: + body: + contact_type: + creator_email: + info_hash: + kind: + title: + user_email: + doorkeeper/access_grant: + expires_in: + redirect_uri: + revoked_at: + scopes: + token: + doorkeeper/access_token: + expires_in: + refresh_token: + revoked_at: + scopes: + token: + duplicate_bike_group: + added_bike_at: + bikes: + ignore: + normalized_serial_segments: + export: + file: + file_format: + kind: + options: + progress: + rows: + feedback: + body: + email: אימייל + feedback_hash: + feedback_type: + name: + title: + flipper/adapters/active_record/feature: + key: + flipper/adapters/active_record/gate: + feature_key: + key: + value: + front_gear_type: + bikes: + count: + internal: + name: + slug: + standard: + integration: + access_token: + information: + provider_name: + invoice: + amount_due_cents: + amount_paid_cents: + force_active: + invoice_organization_features: + is_active: + notes: + organization_features: + payments: + subscription_end_at: + subscription_start_at: + listicle: + body: + body_html: + crop_top_offset: + image: + image_credits: + image_credits_html: + image_height: + image_width: + list_order: + title: + location: + bikes: + city: + deleted_at: + email: אימייל + latitude: + longitude: + name: + phone: + shown: + street: + zipcode: + lock: + combination: + has_combination: + has_key: + key_serial: + lock_model: + manufacturer_other: + notes: + lock_type: + name: + slug: + mail_snippet: + address: + body: + is_enabled: + is_location_triggered: + kind: + latitude: + longitude: + name: + proximity_radius: + public_images: + manufacturer: + bikes: + close_year: + components: + description: + frame_maker: + locks: + logo: + logo_source: + name: + notes: + open_year: + paints: + slug: + total_years_active: + website: + membership: + claimed_at: + deleted_at: + email_invitation_sent_at: + invited_email: + role: + normalized_serial_segment: + segment: + organization: + access_token: + api_access_approved: + approved: + ascend_name: + avatar: + b_params: + bike_organizations: + bike_stickers: + bikes: + child_organizations: + created_bikes: + creation_states: + deleted_at: + enabled_feature_slugs: + invoices: + is_paid: + kind: + landing_html: + locations: + lock_show_on_map: + mail_snippets: + memberships: + name: + payments: + pos_kind: + previous_slug: + public_images: + recovered_records: + registration_field_labels: + short_name: + show_on_map: + slug: + users: + website: + organization_feature: + amount_cents: + description: + details_link: + feature_slugs: + invoice_organization_features: + invoices: + kind: + name: + ownership: + claimed: + current: + example: + owner_email: + send_email: + user_hidden: + paint: + bikes: + name: + payment: + amount_cents: + email: אימייל + first_payment_date: + is_current: + is_payment: + is_recurring: + kind: + last_payment_date: + public_image: + external_image_url: + image: + imageable_type: + is_private: + listing_order: + name: + rear_gear_type: + bikes: + count: + internal: + name: + slug: + standard: + recovery_display: + image: + link: + quote: + quote_by: + recovered_at: + state: + abbreviation: + locations: + name: + stolen_records: + stolen_notification: + message: + receiver_email: + reference_url: + send_dates: + subject: + stolen_record: + approved: + can_share_recovery: + city: + create_open311: + current: + date_stolen: + estimated_value: + index_helped_recovery: + latitude: + lock_defeat_description: + locking_description: + longitude: + phone: + phone_for_everyone: + phone_for_police: + phone_for_shops: + phone_for_users: + police_report_department: + police_report_number: + proof_of_ownership: + receive_notifications: + recovered_at: + recovered_description: + recovery_display_status: + recovery_link_token: + recovery_posted: + recovery_share: + recovery_tweet: + secondary_phone: + street: + theft_alerts: + theft_description: + time: + tsved_at: + zipcode: + theft_alert: + end_at: + notes: + start_at: + status: + theft_alert_plan: + active: + amount_cents: + description: + duration_days: + name: + stolen_records: + theft_alerts: + views: + tweet: + alignment: + body_html: + image: + public_images: + twitter_response: + user: + ambassador_task_assignments: + ambassador_tasks: + auth_token: + avatar: + banned: + can_send_many_stolen_notifications: + city: + confirmation_token: טוקן אימות + confirmed: + created_bikes: + created_ownerships: + creation_states: + current_ownerships: + currently_owned_bikes: + description: + developer: + email: אימייל + integrations: + last_login_at: + last_login_ip: + latitude: + locks: + longitude: + magic_link_token: + memberships: + my_bikes_hash: + name: + notification_newsletters: + notification_unstolen: + oauth_applications: + organization_embeds: + organizations: + owned_bikes: + ownerships: + partner_data: + password: סיסמא + password_digest: + password_reset_token: + payments: + phone: + preferred_language: + received_stolen_notifications: + sent_memberships: + sent_stolen_notifications: + show_bikes: + show_phone: + show_twitter: + show_website: + street: + subscriptions: + superuser: + terms_of_service: + title: + twitter: + user_emails: + username: + vendor_terms_of_service: + website: + when_vendor_terms_of_service: + zipcode: + user_email: + confirmation_token: טוקן אימות + email: אימייל + wheel_size: + bikes: + description: + iso_bsd: + name: + priority: + enums: + cycle_type: + bike: + cargo: + cargo_rear: + cargo_trike: + cargo_trike_rear: + e_scooter: + e_skateboard: + non_e_scooter: + non_e_skateboard: + pedi_cab: + penny_farthing: + personal_mobility: + recumbent: + stroller: + tall_bike: + tandem: + trail_behind: + trailer: + tricycle: + unicycle: + wheelchair: + frame_material: + aluminum: + composite: + magnesium: + organic: + steel: + titanium: + handlebar_type: + bmx: + drop_bar: + flat: + forward: + other: + rearward: + propulsion_type: + foot_pedal: + hand_pedal: + human_not_pedal: + pedal_assist: + pedal_assist_and_throttle: + throttle: + models: + ad: + ambassador: + ambassador_task: + ambassador_task_assignment: + b_param: + bike: + bike_organization: + bike_sticker: + bike_sticker_batch: + blog: + bulk_import: + cgroup: + color: + component: + country: + creation_state: + ctype: + customer_contact: + doorkeeper/access_grant: + doorkeeper/access_token: + doorkeeper/application: + duplicate_bike_group: + export: + feedback: + flipper/adapters/active_record/feature: + flipper/adapters/active_record/gate: + front_gear_type: + integration: + invoice: + invoice_organization_feature: + listicle: + location: + lock: + lock_type: + mail_snippet: + manufacturer: + membership: + normalized_serial_segment: + organization: + organization_feature: + organization_message: + other_listing: + ownership: + paint: + payment: + public_image: + rear_gear_type: + recovery_display: + state: + stolen_notification: + stolen_record: + theft_alert: + theft_alert_plan: + tweet: + user: משתמש + user_email: + wheel_size: + select_options: + color: + black: + blue: + brown: + green: + orange: + pink: + purple: + red: + silver_gray_or_bare_metal: + stickers_tape_or_other_cover_up: + teal: + white: + yellow_or_gold: + ctype: + aero_bars_extensions_bar_ends: + axle_nuts: + bashguard_chain_guide: + basket: + bell_noisemaker: + bottom_bracket: + brake: + brake_cable: + brake_lever: + brake_pad: + brake_rotor: + chain: + chain_tensioners: + chainrings: + cog_cassette_freewheel: + computer: + crankset: + derailleur: + detangler: + fairing: + fender: + fork: + generator_dynamo: + grips_tape: + handlebar: + headset: + hub: + hub_guard: + kickstand: + lights: + other: + pedals: + pegs: + rack: + rear_suspension: + rim: + saddle: + seatpost: + seatpost_clamp: + shift_and_brake_lever: + shift_cable: + shifter: + spokes: + stem: + tire: + toe_clips: + training_wheels: + tube: + unknown: + water_bottle_cage: + wheel: + organization: + organization_affiliation_options: + community_member: + employee: + graduate_student: + student: + stolen_record: + bike_was_not_locked: + cable_lock: + chain_with_padlock: + heavy_duty_bicycle_security_chain: + lock_is_missing_along_with_the_bike: + lock_was_cut_and_left_at_the_scene: + lock_was_opened_and_left_unharmed_at_the_scene: + not_locked: + object_that_bike_was_locked_to_was_broken_removed_or_otherwise_compromised: + other: + other_situation_please_describe_below: + two_u_locks: + u_lock: + u_lock_and_cable: + status_humanized: + bike: + abandoned: + found: + impounded: + stolen: + unregistered: + with_owner: + datetime: + distance_in_words: + half_a_minute: חצי דקה + less_than_x_seconds: + one: פחות משניה אחת + other: פחות מ- %{count} שניות + x_seconds: + one: שניה אחת + other: "%{count} שניות" + less_than_x_minutes: + one: פחות מדקה אחת + other: פחות מ- %{count} דקות + x_minutes: + one: דקה אחת + other: "%{count} דקות" + about_x_hours: + one: בערך שעה אחת + other: בערך %{count} שעות + x_days: + one: יום אחד + other: "%{count} ימים" + about_x_months: + one: בערך חודש אחד + other: בערך %{count} חודשים + x_months: + one: חודש אחד + other: "%{count} חודשים" + about_x_years: + one: בערך שנה אחת + other: בערך %{count} שנים + over_x_years: + one: מעל שנה אחת + other: מעל %{count} שנים + almost_x_years: + one: כמעט שנה + other: כמעט %{count} שנים + x_years: + one: + other: + prompts: + year: שנה + month: חודש + day: יום + hour: שעה + minute: דקה + second: שניות + helpers: + select: + prompt: נא לבחור + submit: + create: יצירת %{model} + update: עדכון %{model} + submit: שמור %{model} + page_entries_info: + entry: + zero: + one: + other: + one_page: + display_entries: + zero: + one: + other: + more_pages: + display_entries: + bike_helper: + hidden: + hidden_because_status: + hidden_for_unauthorized_users: + made_without_serial: + unknown: + organization_helper: + address: + address_school: + your_full_address_is_required: + grape: + errors: + format: + messages: + coerce: לא תקין + presence: + regexp: לא תקין + blank: + values: + except_values: + same_as: + missing_vendor_option: + problem: + summary: + resolution: + missing_mime_type: + problem: + resolution: + invalid_with_option_for_represent: + problem: + resolution: + missing_option: + invalid_formatter: + invalid_versioner_option: + problem: + resolution: + unknown_validator: + unknown_options: + unknown_parameter: + incompatible_option_values: + mutual_exclusion: + at_least_one: + exactly_one: + all_or_none: + missing_group_type: + unsupported_group_type: + invalid_message_body: + problem: + resolution: + empty_message_body: + too_many_multipart_files: + invalid_accept_header: + problem: + resolution: + invalid_version_header: + problem: + resolution: + invalid_response: + flash: + actions: + create: + notice: + update: + notice: + destroy: + notice: + alert: + i18n_tasks: + add_missing: + added: + one: + other: + cmd: + args: + default_text: + desc: + all_locales: + config: + confirm: + data_format: + keep_order: + key_pattern: + key_pattern_to_rename: + locale_to_translate_from: + locales_filter: + missing_types: + new_key_name: + nostdin: + out_format: + pattern_router: + strict: + translation_backend: + value: + desc: + add_missing: + check_consistent_interpolations: + check_normalized: + config: + data: + data_merge: + data_remove: + data_write: + eq_base: + find: + gem_path: + health: + irb: + missing: + mv: + normalize: + remove_unused: + rm: + translate_missing: + tree_convert: + tree_filter: + tree_merge: + tree_mv_key: + tree_set_value: + tree_subtract: + tree_translate: + unused: + encourage: + - + - + - + enum_list_opt: + invalid: + enum_opt: + invalid: + errors: + invalid_format: + invalid_locale: + invalid_missing_type: + one: + other: + pass_forest: + common: + continue_q: + key: + locale: + n_more: + value: + data_stats: + text: + text_single_locale: + title: + deepl_translate: + errors: + no_api_key: + no_results: + specific_target_missing: + google_translate: + errors: + no_api_key: + no_results: + health: + no_keys_detected: + inconsistent_interpolations: + none: + missing: + details_title: + none: + openai_translate: + errors: + no_api_key: + no_results: + remove_unused: + confirm: + one: + other: + noop: + removed: + translate_missing: + translated: + unused: + none: + usages: + none: + yandex_translate: + errors: + no_api_key: + no_results: + countries: + AC: + AD: + AE: + AF: + AG: + AI: + AL: + AM: + AN: + AO: + AQ: + AR: + AS: + AT: + AU: + AW: + AX: + AZ: + BA: + BB: + BD: + BE: + BF: + BG: + BH: + BI: + BJ: + BL: + BM: + BN: + BO: + BQ: + BR: + BS: + BT: + BV: + BW: + BY: + BZ: + CA: + CC: + CD: + CF: + CG: + CH: + CI: + CK: + CL: + CM: + CN: + CO: + CP: + CR: + CU: + CV: + CW: + CX: + CY: + CZ: + DE: + DG: + DJ: + DK: + DM: + DO: + DZ: + EA: + EC: + EE: + EG: + EH: + ER: + ES: + ET: + EU: + FI: + FJ: + FK: + FM: + FO: + FR: + GA: + GB: + GD: + GE: + GF: + GG: + GH: + GI: + GL: + GM: + GN: + GP: + GQ: + GR: + GS: + GT: + GU: + GW: + GY: + HK: + HM: + HN: + HR: + HT: + HU: + IC: + ID: + IE: + IL: + IM: + IN: + IO: + IQ: + IR: + IS: + IT: + JE: + JM: + JO: + JP: + KE: + KG: + KH: + KI: + KM: + KN: + KP: + KR: + KW: + KY: + KZ: + LA: + LB: + LC: + LI: + LK: + LR: + LS: + LT: + LU: + LV: + LY: + MA: + MC: + MD: + ME: + MF: + MG: + MH: + MK: + ML: + MM: + MN: + MO: + MP: + MQ: + MR: + MS: + MT: + MU: + MV: + MW: + MX: + MY: + MZ: + NA: + NC: + NE: + NF: + NG: + NI: + NL: + 'NO': + NP: + NR: + NU: + NZ: + OM: + PA: + PE: + PF: + PG: + PH: + PK: + PL: + PM: + PN: + PR: + PS: + PT: + PW: + PY: + QA: + QO: + RE: + RO: + RS: + RU: + RW: + SA: + SB: + SC: + SD: + SE: + SG: + SH: + SI: + SJ: + SK: + SL: + SM: + SN: + SO: + SR: + SS: + ST: + SV: + SX: + SY: + SZ: + TA: + TC: + TD: + TF: + TG: + TH: + TJ: + TK: + TL: + TM: + TN: + TO: + TR: + TT: + TV: + TW: + TZ: + UA: + UG: + UM: + US: + UY: + UZ: + VA: + VC: + VE: + VG: + VI: + VN: + VU: + WF: + WS: + XK: + YE: + YT: + ZA: + ZM: + ZW: + doorkeeper: + applications: + confirmations: + destroy: + buttons: + edit: + destroy: + submit: + cancel: + authorize: + form: + error: + help: + confidential: + redirect_uri: + blank_redirect_uri: + scopes: + native_redirect_uri: + edit: + title: + index: + title: + new: + name: + callback_url: + confidential: + actions: + confidentiality: + 'yes': + 'no': + new: + title: + show: + title: + application_id: + secret: + scopes: + confidential: + callback_urls: + actions: + authorizations: + buttons: + authorize: + deny: + error: + title: + new: + title: + prompt: + able_to: + show: + title: + authorized_applications: + confirmations: + revoke: + buttons: + revoke: + index: + title: + application: + created_at: + date_format: + pre_authorization: + status: + errors: + messages: + invalid_request: + unknown: + missing_param: + not_support_pkce: + request_not_authorized: + invalid_redirect_uri: + unauthorized_client: + access_denied: + invalid_scope: + invalid_code_challenge_method: + server_error: + temporarily_unavailable: + credential_flow_not_configured: + resource_owner_authenticator_not_configured: + admin_authenticator_not_configured: + unsupported_response_type: + invalid_client: + invalid_grant: + unsupported_grant_type: + invalid_token: + revoked: + expired: + unknown: + revoke: + unauthorized: + invalid_resource_owner: + flash: + applications: + create: + notice: + destroy: + notice: + update: + notice: + authorized_applications: + destroy: + notice: + layouts: + admin: + title: + nav: + oauth2_provider: + applications: + home: + application: + title: + scopes: + public: + read_bikes: + read_bikewise: + read_organization_membership: + read_user: + unconfirmed: + write_bikes: + write_bikewise: + write_organizations: + write_user: + views: + pagination: + first: + last: + previous: + next: + truncate: + bike_versions: + index: + primary_colors: + bikes: + bike: + location: + primary_colors: + serial: + bike_show_overlays: + add_a_picture_of_it: + add_a_picture_so_people_know_what_to_look: + add_some_more_information_about_it: + can_we_share_your_story: + claim_bike_type: + claim_it_so_you_can_update_your_listing: + did_we_help: + edit: + how_did_you_get_it_back: + its_also_how_we_get_better_at_recovering: + mark_graduated_resolved: + mark_parking_resolved: + mark_recovered: + nevermind: + no_futher_action_necessary: + no_one_can_see_it_but_you: + organization_sent_this_message: + please_email_organization_with_questions_html: + please_tell_us_how_you_got_your_bike: + thank_you_for_registering_this_found_bike_type: + this_bike_type_is_hidden: + this_bike_version_is_hidden_html: + were_honored_to_have_your_bike: + were_really_bummed_your_bike_type_was_stolen: + when_did_you_recover_it: + whoa_this_awesome_bike_type_is_yours: + whoa_this_awesome_version_is_yours: + you_have_already_marked_remaining: + you_have_already_marked_resolved: + you_sent_this_bike_html: + your_bike: + index: + all: + miles_of: + no_bikes_matched: + not_marked_stolen: + search_for_stolenness_desc_bikes: + stolen_anywhere: + stolen_within: + you: + main_show_block: + bike_photo: + color_may_not_match: + componentyear: + department_city: + description_of_incident: + distinguishing_features: + found_at: + frame_material: + frame_size: + front: + front_rear: + front_wheel_diameter: + handlebar_type: + impounded_at: + location: + locking_circumvented: + locking_description: + manufacturer: + model: + name: + other: + other_serial: + paint_description: + police_report: + primary_colors: + propulsion_type: + rear: + rear_wheel_diameter: + serial: + stock_photo: + stolen_at: + stolen_details: + vehicle_type: + wheel_diameter: + year: שנה + new: + additional_serial_sticker_number: + affiliation: + are_you_certain: + city: + electric: + enter_bike_type_details_html: + enter_found_bike_type_details_html: + enter_stolen_bike_type_details_html: + how_to_find_serial: + i_just_dont_know_the_serial: + im_100_sure: + is_a_handmade_frame: + it_probably_has_a_serial_number: + mailing_address: + manufacturer: + missing_serial: + model_year: + nevermind: + or: + other_manufacturer: + our_serial_page: + owner_email: + phone: + read_how_to_find_html: + register: + register_with: + required: + select_other: + serial_help: + serial_help_content_html: + state: + sticker_id_html: + student_id: + this_is_a: + traditional_bike: + traditional_bike_definition: + unknown_year: + unsure_or_unknown: + very_few_vehicles_html: + very_very_few_bikes_html: + was_made_before_1970: + without_serial_html: + without_serial_number_html: + zipcode: + organization_stolen_message: + report_link_text: + report_the_theft_to_the_organization_html: + organized_access_panel: + access_panel: + added_to_track_parking_notification: + additional_registrations_information: + additional_registrations_information_visible_because: + additional_registrations_potential_duplicates: + additional_registrations_registered_at: + additional_registrations_this_bike: + address: + address_or_intersection: + as_a_bikeindex_ambassador_html: + assign_sticker: + avery_exportable: + believe_it_is_anyway: + bike_is_not_registered_html: + bike_is_registered: + bike_not_marked_stolen: + choose_country: + city: + claimed: + contact_the_owner_it_is_stolen: + creation_description: + creator: + edit: + email_to_deal_with_this_html: + is_false: + is_not_registered_html: + is_registered: + is_true: + link_sticker: + link_url_for_online_sighting: + mark_bike_recovered: + missing_address: + missing_owner_name: + model_audit: + not_audited: + or_call_owner_html: + org_can_edit_bike: + org_cannot_edit: + organization_can_edit_after_claimed: + organization_child: + organization_registered: + owner_email: + owner_name: + parking_notification_notes_html: + permission: + registered: + send_message: + state: + sticker: + sticker_code: + support_email: + unable_to_display_additional_information: + unregistered_parking_notification: + user_revoked_permission_html: + waiting_on_device_location: + where_did_you_see_this_bike: + write_a_message: + zipcode: + pdf: + bike_description: + bike_serial: + bikeindex_org: + by: + color: + date_stolen: + department: + description_of_theft: + frame_size: + front_gears: + front_wheel: + location: + manufacturer: + model: + narrow_tires: + online: + owner_phone: + paint: + police_report: + printout: + rear_gears: + rear_wheel: + registered: + registration: + saddle: + stolen: + to: + wide_tires: + with: + with_coaster_brake: + scanned: + added: + color: + isnt_linked_to_a_bike: + link_bike_sticker_kind: + link_it: + manufacturer: + mnfg_model_color_html: + model: + new_bike_link_text: + or_click_html: + please_email_support_html: + please_sign_in: + register_a_new_bike_html: + to_link_that_card_with_a_bike: + update: + you_can_enter_the_url: + you_have_claimed_the_maximum_permitted: + show: + change_the_bike_sticker_linked_to: + contact_the_owner: + created_to_record_parking_notification: + from: + hidden_by_owner: + in: + is_this_linked_to_incorrect_bike: + know_something_about_this_bike_type: + link_url: + looking_for_correct_owner: + no_one_but_the_user_and_bike_index_admins: + not_registered_by_user: + or_call: + owners_phone_number: + send_message: + share_it: + spread_the_word: + switch_to_new_bike_id: + test_registration: + update: + view_users_other_registrations: + where_did_you_see_this_bike: + write_them_a_message: + you_scanned_this_sticker_html: + stolen_checklist: + a_photo_of_your_bike_type: + add: + add_bike_link_to_your_theft_report_html: + add_serial_number: + bike_index_does_this: + contact_seller: + facebook_instagram_etc: + leads_online: + leads_online_url: + list_bike_type_on_bike_index: + location_where_the_theft_occurred: + nl_digid_required: + nl_file_police_report: + nl_online: + nl_person: + nl_person_report: + nl_phone: + nl_phone_report: + nl_website_link_text: + promoted_stolen_bike_alerts: + push_bike_info_to: + push_bike_info_to_law_enforcement: + report_theft_html: + requires_a_serial_number: + share_on_twitter: + share_widely_on_your_personal_social: + supercharge_sharing_on_facebook: + your_police_report: + theft_alerts: + new: + best_value: + bike_index_can_help: + bike_index_promoted_alert: + city_state_country: + days: + here: + no_photos_add_photos_here_html: + preview: + purchase_alert: + select_an_image: + select_an_image_to_see_preview: + targeted_sharing_html: + views: + show: + stay_tuned_for_an_update_once_weve_proces: + thank_you: + your_order_is_pending: + table: + created: + creator: + end: + existing_theft_alerts: + plan: + start: + status: + bikes_edit: + accessories: + add_a_component: + bike_details: + a_qr_sticker: + add_a_sticker_label_html: + add_end: + add_start: + bike_name: + bike_registration: + choose_country: + choose_material: + city: + existing_stickers: + frame_size: + general_description: + made_without_serial: + main_frame_material: + manufacturer: + model_year: + nevermind: + other_serial_or_registration_number: + please_fill_in_both_fields: + reason_for_update: + remove_end: + remove_start: + seat_tube_length: + state: + street: + submit_manufacturer_correction: + submit_serial_correction: + submit_update: + tell_us_about_your_bike: + unknown_year: + unsure_or_unknown: + update_on_bike: + update_serial_number: + update_these_attributes_on_bike_html: + updated_serial: + version_name: + zipcode: + bike_fields: + revised_colors: + add_a_color: + choose_color: + color_help: + primary_color_help_content_html: + primary_frame_color: + remove_color: + secondary_frame_color: + tertiary_frame_color: + revised_component_fields: + component_type: + model: + model_year: + other_manufacturer: + part_description: + part_serial: + part_type: + remove_part: + select_other: + unknown_part_type: + stolen_location: + address_or_intersection: + choose_country: + city: + state: + where_was_it_stolen_type: + zipcode: + drivetrain: + belt_drive: + coaster_brake: + cycle_type: + drivetrain: + drivetrain_type: + fixed: + front_gears: + internal_front_gears: + internal_rear_gears: + nevermind: + propulsion_type: + rear_gears: + select_chainring_count: + select_cog_count: + submit_correction: + submit_update: + traditional_bike_definition: + update_propulsion: + update_vehicle_type: + vehicle_type: + wheels: + edit_bike_organization: + can_edit_this_bike: + manage_organization_information: + manage_organization_information_via: + remove: + groups: + add_an_organization: + are_you_part_of_a_school_want_to_bolster_: + choose_organization: + creation_organization: + groups_and_organizations: + other_organizations: + remove: + ownership: + enter_new_owner_email_to_transfer: + impound_record_page: + new_email_assigned_save_to_update: + sell_trade_or_give_away_this_bike: + this_bike_is_currently_impounded_html: + to_transfer_use_impound_record_page_html: + transfer_ownership: + photos: + drag_and_drop_files_here_html: + drag_the_uploaded_photos: + finished_uploading: + primary_menu: + bike_type_information: + purchase_alert: + save_changes: + theft_information: + publicize: + do_these_things_for_the_best_chance_of_re: + help_me_find_bike: + share_on_facebook: + share_on_twitter: + share_your_listing_so_everyone_knows_to_w: + remove: + delete_bike: + delete_this_bike: + delete_this_version_html: + faqs: + hide_this_bike: + keeping_your_bike_public: + modal_title: + nevermind: + reason_for_deletion: + reason_modal_body: + reason_modal_title: + unhide_this_bike: + visibility: + we_strongly_recommend: + you_can_read_more_html: + report_recovered: + can_we_share_your_story: + did_we_help: + how_did_you_get_it_back: + its_how_we_get_better_at_recovering_bikes: + mark_recovered: + nevermind: + not_enough_info: + please_tell_us_how_you_got_your_bike: + this_bike_has_been_returned: + were_so_glad: + report_stolen: + this_bike_type_is_stolen_or_missing: + theft_details: + charges_go_to_cost_of_ad: + click_to_see_promoted_alert_blog_post_html: + do_these_things_for_the_best_chance: + here: + promoted_theft_alert_service_description: + promoted_theft_alerts: + try_one_now: + we_can_create_fb_ads_for_you: + theft_details_partial: + department_city: + description_of_the_incident: + do_you_have_proof_of_ownership: + eg_if_we_tweet_about_it: + if_this_bike_type_was_added: + police_report: + receive_notifications: + show_phone_police: + show_phone_shops: + show_phone_users: + when_was_it_stolen_at: + without_a_valid_report_number_html: + wheels: + all_diameters: + choose_diameter: + diameter_700c: + front_tire: + front_wheel: + general_tire: + general_wheel: + hide_extra_sizes: + narrow: + narrow_title: + rear_tire: + rear_wheel: + show_more_sizes: + wide: + wide_help: + wide_title: + controllers: + application: + handle_unverified_request: + csrf_invalid: + bike_stickers: + find_bike_sticker: + must_be_signed_in: + unable_to_find_sticker: + update: + cannot_update: + bikes: + assign_bike_stickers: + sticker_assigned: + unable_to_find_sticker: + create: + bike_was_added: + bike_was_sent_to: + edit: + accessories: + alert: + bike_details: + bike_or_version_version: + drivetrain: + found_details: + groups: + ownership: + photos: + publicize: + remove: + report_recovered: + report_stolen: + theft_details: + versions: + ensure_user_allowed_to_edit: + bike_has_not_been_claimed_yet: + bike_impounded: + bike_impounded_by_organization: + you_dont_own_that: + you_have_to_sign_in: + index: + we_dont_know_location: + new: + please_sign_in_to_register: + we_couldnt_find_that_registration: + recovery: + ensure_token_match!: + already_recovered: + incorrect_token: + update: + bike_recovered: + resolve_token: + marked_remaining: + marked_retrieved: + notification_already_retrieved: + notification_impounded: + unable_to_find_graduated_notification: + unable_to_find_parking_notification: + scanned: + unable_to_find_sticker: + update: + bike_was_updated: + concerns: + controller_helpers: + authenticate_user: + cannot_find_bike: + create_account: + create_account_to_claim: + owner_already_has_account: + you_have_to_log_in: + ensure_member_of!: + accept_tos_for_orgs: + not_a_member_of_that_org: + please_sign_in: + require_admin!: + not_an_org_admin: + require_index_admin!: + not_permitted_to_do_that: + require_member!: + not_an_org_member: + return_to_if_present: + reset_your_password: + sign_in_if_not!: + please_sign_in: + sessionable: + sign_in_and_redirect: + logged_in: + user_is_banned: + skip_if_signed_in: + already_signed_in: + feedbacks: + block_the_spam: + please_sign_in: + create: + thanks_for_your_message: + we_will_contact_you: + integrations: + integrations_controller_creation_error: + problem_authenticating_with_provider: + locks: + create: + lock_created: + find_lock: + not_your_lock: + my_accounts: + edit: + password: סיסמא + registration_organizations: + sharing: + user_settings: + update: + current_password_doesnt_match: + successfully_updated: + oauth: + applications: + ensure_app_owner!: + not_your_application: + organizations: + create: + organization_created: + find_organization: + not_found: + lightspeed_interface: + must_create_an_account_first: + must_create_an_organization_first: + set_bparam: + no_user: + organized: + ambassador_task_assignments: + update: + could_not_update: + status_updated: + base: + ensure_admin!: + must_be_org_admin: + ensure_ambassador_authorized!: + must_be_ambassador: + must_be_in_ambassador_org: + ensure_not_ambassador_organization!: + must_be_an_admin: + raise_do_not_have_access: + bikes: + update: + unknown_update_action: + bulk_imports: + create: + bulk_import_created: + file_imported: + unable_to_create_bulk_import: + show: + unable_to_find_import: + exports: + create: + wait_to_download: + with_avery_redirect: + create_avery_export: + do_not_have_permission: + sticker_already_assigned: + destroy: + export_deleted: + update: + bike_stickers_removed: + unknown_update_action: + manage_impoundings: + update: + could_not_update: + updated_successfully: + manages: + destroy: + contact_support_to_delete: + deleted_org: + update: + could_not_update: + updated_successfully: + parking_notifications: + create: + successfully_created: + unable_to_create: + stickers: + find_bike_sticker: + unable_to_find_sticker: + update: + cannot_update: + users: + create: + insufficient_invitations: + no_remaining_user_invitations: + user_was_invited: + users_invited: + destroy: + deleted_user: + reject_self_updates: + cannot_remove_yourself: + update: + updated_membership: + ownerships: + show: + no_longer_your_bike: + not_your_bike: + you_claimed_it: + public_images: + create: + cannot_create: + destroy: + cannot_delete: + image_deleted: + ensure_authorized_to_update!: + no_permission_to_edit: + update: + image_updated: + sessions: + create: + invalid_email_or_password: + create_magic_link: + link_sent: + user_not_found: + stolen_notifications: + create: + failure: + thanks: + unauthorized: + theft_alerts: + create: + order_is_pending: + unable_to_process_order: + ensure_user_allowed_to_create_theft_alert: + unauthorized: + user_emails: + confirm: + already_confirmed: + email_confirmed: + incorrect_token: + destroy: + email_primary: + email_removed: + only_email: + ensure_user_email_ownership: + you_must_be_signed_in: + make_primary: + confirm_email_first: + email_has_been_made_primary: + resend_confirmation: + resend_confirmation: + users: + confirm: + already_confirmed: + find_user_from_password_reset_token!: + does_not_match_token: + token_expired: + resend_confirmation_email: + please_sign_in: + resending_email: + reset_password_token_update_form: + link_no_longer_valid: + send_password_reset_email: + email_not_found: + reset_just_sent_wait_a_sec: + show: + user_not_sharing: + unsubscribe: + successfully_unsubscribed: + unsubscribe_update: + successfully_unsubscribed: + update: + accept_tos: + accept_tos_to_use_as_org: + thanks_for_accepting_tos: + you_can_use_bike_index: + you_can_use_bike_index_as_org: + update_password_with_reset_token: + password_reset_successfully: + welcome: + recovery_stories: + no_stories_to_display: + customer_mailer: + additional_email_confirmation: + html: + click_verify_email_html: + if_you_didnt_request_this: + please_confirm_your_additional_email: + user_would_like_to_merge: + verify_email: + subject: + admin_contact_stolen_email: + html: + this_email_is_about: + bike_possibly_found_email: + html: + bike: + bike_registry: + check_out_match_here: + we_think_your_stolen_bike_html: + text: + bike: + bike_registry: + check_out_match_here: + we_think_your_stolen_bike: + confirmation_email: + html: + click_to_verify_html: + please_confirm_your_email_address: + verify_email: + youre_almost_there: + subject: + invoice_email: + html: + donation_will_help: + payment_received: + thank_you_so_much: + thanks_for_signing_up: + we_really_appreciate_your_support: + subject: + magic_login_link_email: + html: + click_the_button: + if_you_did_not_request: + only_valid_once: + sign_in: + subject: + password_reset_email: + html: + if_you_did_not_request_a_new_password_html: + please_click_the_button_below_to_create_a: + reset_password: + tell_us: + whoops_it_appears_you_have_forgotten_your: + subject: + recovered_from_link: + html: + marked_recovered_by: + note_if_you_didnt_recover_html: + the_description_of_the_recovery_was: + were_so_glad_you_got_your_bike_type_back: + your_bike_type_was_marked_recovered_on_bik: + subject: + stolen_bike_alert_email: + html: + alert_retweeted_by_html: + area: + improve_your_chances_of_recovery_by_doing: + stolen_bike_alerter: + this_email_is_about_the_stolen_bike: + we_sent_out_this_tweet_from: + were_spreading_the_word_about_your_stolen: + text: + color: + hopefully_you_find_the_bike_soon: + make: + serial: + we_sent_out_this_tweet_from: + were_spreading_the_word_about_your_stolen: + stolen_notification_email: + html: + if_you_believe_this_email_is_illegitimate: + link: + no_one_should_be_extorted: + please_help_sender_html: + sender_email_sent_you_a_message_html: + stolen_bike_type: + they_believe_it_is_stolen: + this_email_is_about_the_bike_type_register: + update_organization_direct_message_html: + you_can_just_forward_this_message_to: + you_registered_this_bike_type_on: + subject: + updated_terms_email: + html: + as_always_thanks_for_helping_register_bik: + bike_index: + bike_index_privacy_policy: + bike_index_terms_of_service: + bike_index_vendor_terms_of_service: + check_link_to_see_more_html: + gavin_hoover_and_the_bike_index_team: + hello: + help_prevent_bike_theft_html: + here: + make_a_donation: + nothing_significant_has_changed_about_how: + ps_if_you_like_reading_these_kinds_of_doc: + were_emailing_you_because_we_updated_our_: + weve_always_wanted_to_provide_html: + you_may_not_know_but_bike_index_recently_: + subject: + text: + as_always_thanks_for_helping_register_bik: + gavin_hoover_and_the_bike_index_team: + hello: + nothing_significant_has_changed_about_how: + ps_if_you_like_reading_these_kinds_of_doc: + were_emailing_you_because_we_updated_our_: + weve_always_wanted_to_provide_one_free_un: + you_may_not_know_but_bike_index_recently_: + user_alert_email: + html: + this_email_is_about_the_bike_type_register: + welcome_email: + html: + add_some_information_about_your_bikes_whe: + good_thinking_were_glad_youve_joined: + welcome_to_bike_index: + subject: + feedbacks: + form: + email_address: + name: + send_it: + subject: + your_message: + index: + contact_us: + have_a_question_we_havent_answered: + help_with_bike_index: + log_in_to_send_a_comment: + you_can_reach_us_at_contact_html: + info: + about: + about_bike_index: + alumni: + bike_registration_that_works: + bryan_hance_bio_new_html: + cofounded_by_html: + craig_dalton_bio_html: + gavin_hoover_bio_html: + jan_pecnik_bio_html: + merging_the_services: + mike_oleon_bio_html: + nonprofit_status: + seth_built: + seth_herr_bio_html: + seth_herr_image_title: + simple_efficient_effective: + the_team: + widely_used: + dev_and_design: + bike_index_logos_html: + bike_shop_card: + bike_shop_card_pdf_url: + bike_shop_cards_html: + design_resources: + development_resources: + display_widget_html: + flyers_html: + image_assets: + meant_to_be_usable: + nearby_stolen_widget: + nearby_stolen_widget_html: + oauth_apps_html: + oauth_authorized_apps_html: + on_github: + open_source_html: + our_api_documentation: + trifold_flyer: + trifold_flyer_pdf_url: + image_resources: + basic_logo_alt: + basic_logo_html: + basic_logo_in_white_html: + bike_index_image_assets: + black_background_shown_here: + check_out_resources_html: + image_has_no_background: + logo_with_background_cutout_html: + logo_with_blue_shield_html: + logo_with_cutout: + logo_with_stripes: + single_color_logo: + single_color_logo_in_white: + striped_logo_html: + lightspeed: + a_few_things_to_note: + a_listing_on_bike_index_will_be_created: + all_you_have_to_do_is_html: + already_have_a_sophisticated_html: + bicycles_sold_before_you_activated_lights: + bike_index_cofounder: + how_to_lightspeed_retail: + i_started_bike_index_because: + learn_more_about: + lightspeed_retail: + once_you_have_a_bike_index_account_set_up: + privacy_policy_here: + registering_with_a_sticker_html: + security_link_text: + sign_your_shop_up: + the_bicycles_owner_will_receive_an_email: + the_first_step_is_to_create_an_account_html: + this_page_gives_instructions_html: + we_believe_that_bicycle_registration: + we_know_you_and_your_customers_html: + were_happy_to_answer_any_questions_html: + write_do_not_register: + privacy: + available_here: + changes: + changes_p1: + changes_p2_html: + cookies: + cookies_p1: + cookies_p2: + cookies_p3: + data_storage: + data_storage_p1: + disclosure: + disclosure_p1_html: + general_information: + general_information_p1: + general_information_p2: + general_information_p3: + information_gathering: + information_gathering_p1: + information_gathering_p2: + last_updated_html: + questions: + questions_p1_html: + see_terms_link_html: + terms_of_service: + protect_your_bike: + 211547_bikes_were_reported_stolen: + 9_in_10_incidents_of_bike_theft: + a_correctly_locked_bicycle: + according_to_fbi_statistics_html: + aim_to_have_the_hardest_bike_to_steal_on_: + cable_locks_should_never_be_used_as_primary: + cheaper_and_older_ulocks_can_often_be_broken: + checkout_out_bestbikelock_html: + correctly_locking_a_bike: + dont_rely_on_foot_traffic_to_keep_your_bi: + dont_rely_on_the_presence_of_cameras_to_k: + exploration: + jump_to_footnote_1: + make_sure_your_bike_isnt_one_of_them: + many_bicycles_are_stolen_from_garages_and: + over_a_million_bikes_are_stolen_yearly: + pink_power_ulocks: + protect_your_bike: + thanks_to_researchers_html: + the_frame_is_locked_to_an_immovable_objec: + tug_on_whatever_youre_about_to_lock_to_ma: + use_a_ulock_that_costs_at_least_40: + resources: + api_documentation: + bike_index_resources: + check_out_our_link_html: + did_you_know_every_bike_html: + get_bike_index_html: + how_not_to_buy_a_stolen_bike: + infographic_html: + learn_about_serial_numbers_here: + logos_and_design_assets: + map_of_bike_thefts: + the_manufacturers: + view_the_list_of_all_html: + we_have_an_open_api_check_out_html: + were_open_source_view_this_app_html: + serials: + a_serial_number_located_on_a_html: + a_serial_number_on_the_underside_html: + all_bikes: + all_have_unique_serial_numbers: + another_serial_number_beneath_html: + another_standard_serial_number: + bike_serial_numbers: + bike_with_bottom_circled: + certain_numbers_and_letters_html: + doberman_serial: + finding_a_bicycle_serial_number: + finding_bicycles_by_serial_number_html: + hopefully_you_can_find_the_serial_html: + in_this_picture_html: + jump_back_to_footnote: + look_serial: + most_bicycles_have_their_serial_number_en: + okay_fine_so_maybe_html: + our_search_form: + rad_power_serial: + rad_power_serials_html: + schwinn_serial: + searching_serials_on_bike_index: + serial_search_input: + some_bikes_have_multiple_html: + some_schwinn_bicycles_also: + standard_serial_number: + the_bottom_bracket_html: + we_do_close_serial_matching_html: + we_do_not_currently_do_partial_html: + we_split_bike_serials_up_by_html: + weve_done_a_few_things_to_make_it_more_li: + when_adding_a_bike_to_the_index: + show: + also_published: + updated: + terms_text: + about_our_terms_of_service: + available_here: + best_effort: + bike_index_reserves: + bike_index_shall_not_be_liable: + by_creating_account: + by_giving_bike_shops_html: + content_on_the_service: + if_bike_index_html: + last_updated_html: + may_be_terminated: + no_abuse: + no_spam: + no_waiver: + questions_html: + section_a_header: + section_b_header: + section_c_header: + section_d_header: + section_e_header: + support_for_bike_index_services: + terms_of_service: + third_party_vendors: + we_claim_no_ip: + we_dont_prescreen_content: + we_may_remove_content: + welcome_to_bike_index_html: + you_agree_not_to_resell: + you_are_responsible_for_content: + you_are_responsible_for_security: + you_may_not_use_for_illegal: + you_must_be_human: + you_must_notify: + you_must_provide_email: + you_shall_defend_bike_index: + your_use_of_the_service: + vendor_terms_text: + about_terms_of_service_for_vendors: + available_here: + because_bike_index_html: + becoming_a_vendor: + bike_index_vendor_service: + bike_index_vendor_tos: + binding_arbitration: + binding_arbitration_p1: + by_giving_bike_shop_employees_html: + customer_service: + customer_service_body: + disclosures_and_notices: + disclosures_and_notices_p1: + effects_of_deactivation: + effects_of_deactivation_p1: + effects_of_termination: + effects_of_termination_p1: + effects_of_termination_p2: + governing_law: + governing_law_p1: + illegal_use: + illegal_use_p1: + last_updated_html: + license_trademarks: + license_trademarks_p1: + license_trademarks_p2: + lightspeed_integration: + lightspeed_integration_p1: + lightspeed_integration_p2: + limitation_of_liability: + limitation_of_liability_p1: + limitation_of_liability_p2: + limitation_of_liability_p3: + limitation_of_liability_p4: + limitation_of_liability_p5: + limitation_of_liability_p6: + no_warranties: + no_warranties_p1: + no_warranties_p2: + no_warranties_p3: + no_warranties_p4: + our_role: + our_role_body: + ownership: + ownership_p1: + ownership_p2: + ownership_p3: + privacy_of_others: + privacy_of_others_p1_html: + privacy_of_others_p2_html: + privacy_of_others_p3_html: + privacy_of_others_p4_html: + prohibited_businesses: + prohibited_businesses_p1: + prohibited_businesses_p2: + references_to_relationship: + references_to_relationship_p1: + representation_and_warranties: + representation_and_warranties_p1: + restricted_use: + restricted_use_p1: + section_a: + section_c: + section_d: + security: + security_body_html: + term: + term_p1: + termination: + termination_and_other_legal_terms: + termination_p1: + terms_of_service_for_vendors: + tos_agreement: + vendor_registration: + vendor_registration_p1: + vendor_registration_p2: + verification: + verification_p1: + verification_p2: + verification_p3: + verification_p4: + we_can_deactivate_html: + we_provide_you_with_html: + welcome_to_bike_index_html: + with_the_following_brief_descriptions: + your_liability: + your_liability_p1: + your_liability_p2: + your_privacy: + your_privacy_body_html: + where: + bike_index_partners: + if_you_would_like_to_join_html: + international_partner_organizations: + show_location_on_map: + sign_up_your_organization: + signup_page: + us_partner_organizations: + website_for_organization: + javascript: + bikes_search: + abandoned: + absent: + color: + hidden: + impounded: + location: + registry: + registry_id: + search_external_registries: + matches_found_html: + no_matches_found_html: + searching_html: + search_serials_containing: + matches_found_html: + no_matches_found_html: + searching_html: + search_similar_serials: + matches_found_html: + no_matches_found_html: + searching_html: + serial: + serial_search: + stolen: + unknown: + unknown_brand: + payments: + enter_the_minimum_amount: + select_or_enter_amount: + landing_pages: + ambassadors_current: + after_a_couple_of_recoveries_i_got_hooked: + anytown_earth: + as_the_founder_of_bicycle_security_adviso: + become_a_bike_index_ambassador_and_help_s: + bike_index_allows_us_to_verify_details_ab: + bike_index_helped_me_recover_my_beloved_b: + bike_index_helps_people_recover_their_sto: + bike_index_provides_ease_of_use_and_secur: + current_ambassadors: + educating_kids_about_how_to_lock_their_bi: + gears: + i_believe_community_involvement_makes_a_d: + if_a_person_loses_their_bike_there_is_suc: + join_their_ranks: + steve_piercys_ambassadorship_is_sponsored_html: + the_heroes_of_bikedom: + whats_your_story: + why_bike_index: + your_name_here: + ambassadors_how_to: + 9_steps_for_getting_your_stolen_bike_back: + access_to_ambassadors_slack_channel_for_s: + anyone_can_help_bike_index_we_are_always_: + apply_to_be_an_ambassador_here: + apply_today: + be_a_bike_saver: + become_a_bike_index_ambassador: + become_an_ambassador: + bike_index_is_a_nonprofit_with_a_big_miss: + bike_index_launches_new_ambassador_progra: + check_out_our_media_resources: + connect_us_with_city_officials_law_enforc: + current_ambassadors: + follow_bike_index_on_twitter_facebook_and: + get_bike_shops_signed_up_for_bike_index_u: + give_you_shoutouts_on_social_media: + here: + how_it_works: + join_our_list_of_ambassadors_and_advocate: + monitoring_online_sales_platforms_like_cr: + pos_integrations: + relevant_articles: + share_bike_index_on_social_channels_inclu: + start_here: + to_become_a_bike_index_ambassador_fill_ou: + typical_ambassador_activities: + typical_ambassador_activities_include: + view_current_ambassadors: + want_to_help_fight_bike_theft_in_your_com: + we_provide_you_with_the_resources_to_make: + why_work_with_bike_index: + you_bring_the_ideas_make_the_connections_: + ascend: + ascend_knowledge_base_article: + automatic_bicycle_registration: + email_shops_security_html: + email_us_the_password_to_finish_setting_u: + follow_the_setup_instructions_html: + if_your_shop_uses_lightspeed_html: + link_your_ascend_retail_and_bike_index: + new_bike_shop_org: + once_youve_set_up_the_trek_ascenwd: + security_link_text: + sign_up_as_a_new_org_html: + then_if_a_customers_bike_goes_missing_html: + we_have_a_new_free_bicycle_registration: + bike_shop_packages: + additional: + bike_index_for_bike_shops: + choose_a_package_size: + compare_plans_and_features: + contact_us: + contact_us_for_trial: + forever: + free: + package_title: + questions_want_to_get_started: + sign_up: + sign_up_now: + simply_the_best_bike_registry: + try_for_free: + year: + campus_packages: + additional: + all_plans_come_with_a_30day_free_trial: + bike_index_for_colleges_universities: + choose_a_package_size: + clean_up_your_campus_messy_registry: + compare_plans_and_features: + contact_us: + contact_us_for_trial: + forever: + free: + package_title: + questions_want_to_get_started: + sign_up: + sign_up_now: + try_for_free: + year: + cities_packages: + additional: + all_plans_come_with_a_30day_free_trial: + bike_index_for_cities: + choose_a_package_size: + compare_plans_and_features: + contact_us: + contact_us_for_trial: + forever: + free: + give_your_constituents_the_bike_registry_: + package_title: + questions_want_to_get_started: + sign_up: + sign_up_now: + try_for_free: + year: + find_out_more: + all_accounts_come_with_bike_index: + custom_development_available: + find_out_more_html: + get_in_touch_link: + want_qr_stickers: + for_bike_shops: + 5_ways_to_grow_community_for_your_bike_sh: + automatic_registration_at_point_of_sale: + bike_index_for_bike_shops: + bike_shops_deck: + bikes_before_they: + build_goodwill_with_your_customers_with_a: + check_out: + connect_your_ascend_account_html: + connect_your_lightspeed_account: + curious_what_information_html: + do_right_by_your_customers: + dont_use_ascend_or_lightspeed_html: + driving_service_revenues_with_bicycle_reg: + embed_a_bike_index_registration_form: + for_free_we_provide_you_with_t: + here: + join_our_network_link_html: + learn_more: + network_of_shop_partners: + or: + our_official_lightspeed_integration_provi: + printed_materials: + register_bikes_for_your_customers: + related_articles: + security_link_text: + sign_up_for_a_free_bike_index_account_html: + sign_up_for_free: + trusted_by_bike_shops_everywhere: + use_ascend: + use_lightspeed_retail: + used_at_bike_shops_everywhere: + for_cities: + actually_get_people_registered_and_do_it_: + bike_index_for_cities: + bike_index_is_the_community_registration_: + bike_index_new_dashboard: + bike_index_organization_impounding: + bike_index_unveils_partnership_with_the_c: + bring_together_bike_shops_schools_municip: + check_out: + cities_deck: + embed_a_bike_index_registration_form: + engage_your_residents_and_recover_their_b: + features_amp_pricing: + mitigate_the_registration_mess: + no_more_index_cards_or_excel_sheets_give_: + our_community_is_your_community: + plug_your_city_in_nationally: + related_articles: + trusted_by_municipalities_everywhere: + used_by_municipalities_everywhere: + for_community_groups: + bike_index_for_community_groups: + bike_index_launches_new_ambassadors_progr: + bike_index_welcomes_stolen_bikes_nola: + embed_a_bike_index_registration_form: + gone_are_the_days_where_you_had_to_regist: + help_us_help_you: + here: + partners_made_in_heaven: + purchase_a_pack_of_advocacy_html: + registration_drive: + registrations_are_free_forever_join_bike_: + related_articles: + sign_up_for_free: + spread_the_bike_index_word_html: + the_most_widereaching_and_effective_tools: + trusted_by_community_groups_everywhere: + used_by_community_groups_everywhere: + we_provide_free_and_easy_access_to_our_re: + for_law_enforcement: + automated_tweets: + bend_reduces_bike_theft_by_60_percent: + bike_index_for_law_enforcement: + bike_index_organization_impounding: + calgary_doubles: + check_out: + embed_a_bike_index_registration_form: + here: + if_you_want_to_collaborate_html: + is_your_department_equipped_to_fight_bike: + law_enforcement_deck: + local_ambassadors: + our_extensive_archive_has_helped_officers: + put_a_lock_on_bike_theft: + recover_your_citizens_bikes: + related_articles: + sign_up_for_free: + trusted_by_law_enforcement_everywhere: + used_by_law_enforcement_everywhere: + with_over_600_partnerships_html: + with_over_registrations_and_almost: + you_have_the_authority_to_bring_html: + youre_the_first_one: + for_organizations_photo_list: + bike_shops: + cities: + community_groups: + for: + schools: + for_schools: + bike_index_for_universities: + bike_index_users_provide: + check_out: + embed_a_bike_index_registration_form: + features_amp_pricing: + how_it_works: + keep_campus_bikes_in_order: + make_bike_registration_better: + must_read: + protecting_bikes_on_campus_can_be: + read_about_our_html: + related_articles: + schools_deck: + six_best_features_for_schools: + trusted_by_top_universities: + universities_should_use_bike_index_as_the: + university_of_pittsburgh_partners_with_bi: + weve_designed_a_platform: + your_students_can_register_their_bikes: + packages_list: + forever: + free: + hide_features: + see_features: + sign_up_now: + try_for_free: + year: + layouts: + application: + blog: + donate: + help: + log_in: + logout: + register_a_new_bike: + search_bikes: + sign_up: + stolen_bike: + the_nonprofit_bike_registry: + user_settings: + view_org: + your_bikes: + application_bikehub: + accounts_powered_by_bike_index: + contact: + home: + login: + non_profit: + partnership: + register: + teamed_up: + email: + bike_index: + help_prevent_theft: + make_a_donation: + the_bike_index_team: + embed_layout: + error: + please_fix_the_following: + register_through_org: + payments_layout: + be_a_bike_saver: + support_bike_index_today: + until_every_bike_is_safe: + reg_embed: + its_free: + protect_your_bike_today: + register_on_bike_index: + register_your_bike: + revised_messages: + error: + please_fix_the_following: + locales: + en: + nb: + nl: + locks: + edit: + are_you_sure: + back_to_viewing_all_locks: + delete_this_lock: + edit_the_lock: + form: + add_the_lock: + additional_notes: + basic: + choose_manufacturer: + examples_of_serial_numbers_found_on_diffe: + has_combination: + has_key: + large_kryptonite_key: + lock_type: + other_lock_manufacturer: + pinhead_key: + pinhead_locking_skewer_key: + small_kryptonite_key: + update_the_lock: + lock_home: + add_a_new_lock: + any_lock_information_you_enter_on_bike_in: + if_you_want_you_can_save_serial_html: + lock_keys_often_have_serial_numbers_so_yo: + lock_type: + manufacturer: + save_information_about_a_lock: + save_information_about_your_bike_lock: + you_can_also_record_your_lock_html: + your_locks: + new: + save_information_about_one_of_your_locks: + manufacturers: + index: + give_us_a_heads_up_in_a_comment_below: + manufacturers_we_know_about: + name: + oh_no_were_missing_a_manufacturer: + only_makes_components: + thats_not_actually_surprising: + meta_descriptions: + bikes_index: + bikes_new: + bikes_new_stolen: + documentation_api_v1: + documentation_api_v2: + feedbacks_index: + feedbacks_new: + feedbacks_vendor_signup: + info_about: + info_protect_your_bike: + info_resources: + info_serials: + info_spokecard: + info_stolen_bikes: + info_where: + landing_pages_for_law_enforcement: + landing_pages_for_schools: + landing_pages_show: + manufacturers_index: + my_accounts_show: + news_index: + sessions_create: + sessions_new: + stolen_index: + stolen_merging: + users_new: + welcome_index: + meta_titles: + about: + bikes_index: + bikes_new: + bikes_new_stolen: + documentation_api_v1: + feedbacks_index: + feedbacks_new: + feedbacks_vendor_signup: + info_about: + info_serials: + info_spokecard: + info_stolen_bikes: + info_where: + landing_pages_ambassadors_current: + landing_pages_ambassadors_how_to: + landing_pages_ascend: + landing_pages_bike_shop_packages: + landing_pages_campus_packages: + landing_pages_cities_packages: + landing_pages_for_bike_shops: + landing_pages_for_cities: + landing_pages_for_community_groups: + landing_pages_for_law_enforcement: + landing_pages_for_schools: + landing_pages_show: + links: + manufacturers_index: + news_index: + payments_create: + payments_new: + sessions_create: + sessions_new: + stolen_howworks: + stolen_index: + stolen_merging: + tech: + users_accept_terms: + users_accept_vendor_terms: + users_confirm: + users_new: + users_password_reset: + users_request_password_reset: + welcome_goodbye: + welcome_index: + money: + currencies: + en: + en-GB: + es: + nb: + nl: + my_accounts: + edit: + save_changes: + password: + better_password: + for_password_update: + new_password: + new_password_confirmation: + password_helper_text_html: + reset_password: + registration_organizations: + affiliation: + all_bikes_with_organization: + allow_organization_to_edit_bikes_html: + and_other_bikes_count: + bike: + mailing_address: + phone: + register_all_with: + registered_with: + registration_organization_information: + registration_organizations: + student_id: + update_your_address_on_html: + update_your_phone_on_html: + when_not_selected: + root: + absolutely_no_notifications: + add_additional_email: + add_new_phone_number: + additional_email: + address: + any_use_of_your_personal_information_html: + choose_country: + choose_language: + city: + confirmed_emails: + daily_hot_sheet_notifications_html: + give_us_permission_html: + have_multiple_emails: + make_primary_email: + no_notifications_explanation: + notifications_email: + personal_information_for_user: + preferred_language: + primary_email: + receive_the_bike_index_newsletter: + remove_email: + remove_number: + resend_confirmation: + state: + stolen_hot_sheets: + time_single_format: + time_single_format_small: + unconfirmed: + unconfirmed_emails: + verified: + why_you_should_text: + zipcode: + sharing: + choose_file: + create_page: + create_public_page: + example_url: + instagram_handle: + my_awesome_link: + no_instagram: + no_personal_site: + no_please_dont_create_me_a_page: + no_twitter: + page_text: + page_title: + personal_site_url: + preview_page: + profile_avatar: + sharing_and_personal_page_settings: + show_instagram: + show_personal_site: + show_personal_website: + show_twitter: + the_bike_index_can_create_a_page: + this_users_bikes: + title_for_link: + twitter_handle: + will_not_show_up: + your_username_is_the_url_for_your_sharing: + show: + add_a_bike: + add_a_lock: + add_a_photo: + add_it_now: + bike_sticker: + bikes: + combination: + edit: + edit_bike: + generally_connect_to_org: + ignore: + key_serial: + list_a_bike_on_bikefair: + location: + lock_type: + locks: + manufacturer: + mark_bike_stolen: + next: + primary_colors: + register_new_items: + registered: + serial: + sorry_your_bike_was_stolen: + tell_us_more_about_yourself: + thanks_for_adding_your_bike: + to_bike_index_thanks_for_signing_up: + update_your_profile: + updated: + user_bikes: + user_hidden: + want_to_sell_your_bikes: + welcome: + you_have_no_registered_bikes: + you_have_no_registered_locks: + news: + index: + bike_index_blog: + bike_index_blog_feed: + show: + also_published: + by: + organization_invitations: + not_available: + contact_us: + contact_us_if_you_think_were_wrong_html: + perhaps_that_link_has_already_been_used_t: + whoops_that_link_isnt_connected_to_a_bike: + organizations: + embed: + add_a_color: + additional_serial: + choose_color: + choose_country: + city: + currently_registering_a_nonstolen_bike: + department_city: + description_of_the_theft: + eg_if_we_tweet_about_or_someone_searches: + filing_a_police_report_is_important_html: + frame_color: + image_has_been_uploaded: + intersection_or_address: + manufacturer_name: + model_year: + optional_upload_a_photo: + other_manufacturer: + owners_mailing_address: + police_report_number: + receive_notifications_from_bike_index: + register: + registering_a_stolen_bike_click_here: + remove_color: + secondary_color: + select_other_if_manufacturer_isnt_listed: + state: + sticker_id_html: + student_id: + third_color: + this: + unknown_serial: + unknown_year: + unsure_or_unknown: + when_was_it_stolen: + where_was_it_stolen: + your_email_address: + your_phone_number: + zipcode: + embed_create_success: + bike_was_registered_to_you_html: + you_will_receive_an_email_confirmation: + your_bike_has_been_added_to_bike_index: + embed_extended: + add_a_color: + additional_serial: + any_extra_words: + choose_color: + choose_handlebar: + choose_material: + choose_photo: + city: + frame_color: + image_has_been_uploaded: + manufacturer_name: + model_year: + optional_additions: + org_affiliation: + other_defining_features: + other_manufacturer: + owners_email_address: + owners_mailing_address: + owners_phone: + primary_frame_material: + register_this: + remove_color: + secondary_color: + select_other_if_manufacturer_isnt_listed: + state: + sticker_id_html: + student_id: + third_color: + unknown_serial: + unknown_year: + unsure_or_unknown: + zipcode: + new: + bike_index_for_organizations: + new_form: + add_organization: + add_your_organization_to_bike_index: + bike_index_account: + confirm_your_email: + error: + fill_out_the_form_that_will_appear: + filling_out_this_form_will_create_a_new_org: + if_you_dont_want_that_to_be_the_case_html: + log_out: + new_organization: + organization_kind: + organization_name: + please_fix_the_following_errors: + sign_up_for_a_new_account_html: + you_are_already_a_member_of_org_html: + your_current_account_will_be_a_member_html: + organized: + ambassador_dashboards: + getting_started: + 10_tips_for_getting_started_in_your_town: + be_a_part_of_your_local_cycling_culture: + encourage_people_to_watch: + engage_your_local_city_and_cops: + find_and_talk_to_local_bloggers: + grow_your_network_via_bike: + have_twitter_connect: + post_and_rt_stolen_bikes: + promote_bike_index: + ride_your_bike_express_your: + seek_out_local_facebook_groups: + resources: + access_to_quick_communication: + ambassador_resources: + as_an_ambassador_you_have_access_to_a_num: + organizations_sign_up: + page_on_bike_index_html: + periodic_discount_codes: + qr_sticker_instructions: + qr_sticker_instructions_url: + qr_sticker_org_instructions: + qr_sticker_org_instructions_url: + some_additional_resources: + tips_for_talking_to_bike_shops: + tips_for_talking_to_bike_shops_url: + you_can_mark_stolen_bikes: + you_can_send_stolen_messages_html: + youre_a_moderator_on_discuss_html: + show: + actions: + activities: + activities_for_registering_cyclists_html: + activity: + being_a_bike_index_ambassador: + completed: + completed_activities: + leaderboard: + name: + suggested_activities: + this_page_contains_the_resources_you_need: + welcome_to_your_ambassador_homepage: + bikes: + incompletes: + bike: + email: + incomplete: + matching: + only_resend_with_permission: + org_incomplete_registrations_html: + re_send: + registration: + search: + search_emails: + sent: + through_org: + index: + connected_to_bike_html: + enter_url_of_the_bike_html: + is_currently_linked: + isnt_linked_to_a_bike: + search_org_bikes_html: + update: + list: + added: + bike: + color: + link: + manufacturer: + model: + num_bikes_registered_html: + sent_to: + sent_to_a_new_owner: + sticker: + recoveries: + description: + mfg_model_color_html: + org_recoveries_html: + owner: + recovered_at: + recovery: + render_chart: + show_only_organization_recoveries: + search: + address: + all: + avery: + bike: + color: + create_export_of_vehicles: + email_hidden: + impounded: + link: + manufacturer: + matching_bikes_html: + mfg_model_color_html: + model: + only_impounded_vehicles_html: + only_no_address_html: + only_no_sticker_html: + only_not_impounded_html: + only_stolen_html: + only_with_address_html: + only_with_owner_html: + only_with_stickers_html: + owner_name: + propulsion_type: + registered: + registered_bikes_html: + sent_to: + settings: + status: + status_cell: + sticker: + stickers: + stolen: + stolen_vehicles_html: + updated: + vehicle: + vehicle_type: + view_all_vehicles: + view_just_stolen_vehicles: + visible_columns: + bulk_imports: + error_type: + file: + line: + index: + added: + bikes: + creator: + errors: + exclude_empty_imports: + include_empty_imports: + kind: + new_import: + org_ascend_imports_html: + org_bulk_imports_html: + progress: + unable_to_process: + new: + choose_file: + correct_actual_image_url_html: + csv_file_with_bikes: + doing_an_import: + example_csv_with_all_options: + for_best_results: + if_only_some_of_your_bikes_html: + if_you_are_including_photo_url_html: + importing_stickers_html: + incorrect_image_on_webpage_html: + look_at_example_csv_and_html: + must_have_required_headers_html: + notes_on_successfully_importing: + optional_additions: + our_example_csv_here: + register_bikes_from_a_csv: + required_headers_are_html: + this_will_not_work: + upload_and_begin_import: + we_support_a_few_additional: + you_must_upload_a_dot_csv_html: + your_headers_must_match_html: + show: + ascend_import: + bikes: + bulk_import: + bulk_import_impounded: + color: + created: + creator: + errors: + file: + file_removed: + file_removed_explanation: + impounded_at: + impounded_id: + manufacturer: + model: + progress: + sent_to: + sent_to_a_new_owner: + exports: + index: + bikes_in_export: + created: + creator: + delete: + download: + export: + new_export: + org_exports_html: + progress: + stickers_assigned: + show: + avery_export: + bikes_exported: + bikes_registered_after: + bikes_registered_before: + by: + columns_in_csv: + created: + download_export: + exports: + format: + no_stickers_assigned: + not_assigned: + pending: + progress: + registration_types: + shared_alert_body: + show_bikes_in_export: + show_first_100_bikes_in_export: + specific_bikes: + stickers: + stickers_exported: + stickers_have_been_unassigned: + unable_to_export: + unassign_stickers: + view_avery_labels: + manage_impoundings: + edit: + impound_settings_html: + save: + manages: + location_fields: + address: + choose_country: + city: + location_name: + name: + phone_number: + remove: + state: + street: + zipcode: + locations: + add_location: + bike_index_partner_map: + display_org_on_map_html: + location_settings_html: + save: + show: + abbreviation: + choose_file: + contact_to_update_html: + delete_organization: + i_would_like_to_terminate_my_account: + name: + org_email_address_html: + org_settings: + organization_logo: + organization_type: + registration_email: + removal_confirmation: + select_email: + send_emails_directly: + square_image: + stolen_emails: + unclaimed_registration_definition: + update: + when_checked_go_direct: + why_no_direct_by_default: + parking_notifications: + index: + matches_visible: + parking_notifications: + show_details: + address: + bike: + by: + created: + internal_notes: + message: + notification_number: + resolved: + table: + address: + bike: + by: + created: + notification_number: + resolved: + stickers: + edit: + bike: + bike_id_or_url: + bike_is_unavailable: + claimed: + claimed_by: + edit_sticker: + previous_bike: + remove_bike_link: + sticker: + unclaimed: + update: + index: + added_html: + all: + bike: + claimed: + coded: + search: + search_bike_url_or_id: + search_sticker_id: + sticker: + stickers: + unclaimed: + users: + edit: + confirmation: + edit_membership_html: + email: אימייל + has_not_signed_up_html: + invited: + last_login: + last_login_ip: + remove_from_organization: + signed_up: + update: + index: + admin: + claimed: + created: + current_users: + emails_are_currently_sent_from_html: + find_by_name_or_email: + invite_more_users: + manage_users: + manually_invite_email: + matching_user: + member: + no_bike_edit: + permitted_domain_info_html: + remaining_invites_html: + role: + search: + sender: + to: + update_email: + user: + you_can_also: + you_have_invited_html: + membership_role_fields: + admin_access: + admin_of_organization: + member_access: + member_no_bikes: + member_no_bikes_access: + member_of_organization: + membership_type: + new: + 1_email_per_line: + automatic_passwordless: + email_youre_inviting: + invite_multiple_emails: + invite_user: + membership: + multiple_emails: + remaining_invites_html: + send_invitation: + signing_in_with_permitted_domain_html: + user: + you_have_a_permitted_domain: + you_have_invited_html: + organized_mailer: + custom_message: + subject: + finished_owned_registration: + subject: + finished_registration: + html: + a_correctly_locked_bike: + a_donation_will_prioritize_html: + before_locking_check: + bike_register_with_bike_index: + bike_register_with_bike_index_and_org: + bike_type_thieves_are_jerks: + cable_locks_should_never_be_used: + claim_the_bike_type: + confirm_this_bike_type: + correctly_locking_a_bike: + donating: + give_us_a_heads_up: + hopefully_you_find_the_bike_html: + hopefully_you_find_the_owner_html: + mark_recovered_link_html: + mark_your_bike_recovered: + org_added_a_bike_html: + org_sent_a_bike_html: + pink_power_ulocks_tm: + please_consider_donating_html: + prioritize_your_listing: + protect_your_bike_by_following_these_lock: + protecting_your_bike_here: + read_more_about_protecting_html: + recovered_bike_type: + secure_both_wheels_either_with_two_ulocks: + sign_up_on_bikeindexorg_to_claim_your_bik: + stolen_bike_type: + thanks_for_adding_this_bike_type_you_found: + use_a_ulock: + welcome_to_bike_index: + were_sorry_your_bike_type_was_stolen: + you_added_a_bike_type_on_bike_index: + youre_almost_done_registering: + subject: + finished_stolen_registration: + subject: + organization_invitation: + html: + hello: + join_org: + welcome_to_bike_index: + you_are_a_member: + subject: + partial_registration: + html: + click_below_to_complete_your_registration: + finish_it: + just_a_few_steps_away_html: + youre_almost_done: + subject: + payments: + form: + donation_header: + pay_bike_index: + success: + bike_index_team: + thank_you_for_supporting_bike_index: + we_received_your_payment_of: + xoxo: + your_donation_saved_bikes: + plan_features: + automatic_registration_through_pos: + campus_bike_management_suite: + contact_unfinished_registrants: + create_organization_account: + custom_form_fields: + customize_emails: + department_landing_page: + embed_registration_form: + export_custom_data: + graduated_bikes: + import_registrations_from_previous: + impound_bikes: + law_enforcement_list_html: + mailing_stickers: + organization_dashboard: + priority_programming_support: + qr_sticker: + qr_sticker_scanning_and_messaging: + school_landing_page: + search_bikes_organization: + social_media_and_email_marketing: + staff_accounts: + public_images: + edit: + editing_bike_html: + editing_image: + form: + cancel_update: + do_not_display: + error: + errors_prevented_photo_from_saving: + image_name: + no_one_will_be_able_to_see_this_image_exc: + save_image: + use_this_if_youd_like_to_attach_a_photo: + new: + add_a_public_image: + new_form: + drag_and_drop_html: + upload_photos: + public_image: + keep_image_private: + missing_image: + photo_of_receipt: + photo_of_serial: + photo_of_user_with_bike: + photo_stock: + photo_uncategorized: + processing: + show: + are_you_sure: + back_to_images: + bike_image: + destroy: + edit: + image_from: + looks_like_this_is_your_image: + recovery_displays: + recovery_display: + bike: + recovered_date: + translated_from_english: + registrations: + create: + follow_link_in_email: + we_sent_an_email_to: + well_do_our_best_to_help_you_recover_it: + youre_not_done: + embed: + bike_manufacturer: + choose_specific_organization_optional: + owner_email: + primary_frame_color: + register: + select_other_if_manufacturer_doesnt_show: + this_bike_is_either_missing_or_stolen: + your: + sessions: + magic_link: + enter_email_address: + get_sign_in_link: + if_not_click_button: + reenter_email: + sign_in: + sign_in_with_magic_link: + unable_to_auth: + you_should_be_signed_in_automatically: + your_email_address: + new: + dont_have_an_account: + email: + forgot_your_password: + get_on_bike_index: + keep_me_logged_in: + log_in: + no_bike_index_account: + or: + password: + sign_in_using_facebook: + sign_in_using_globalid: + sign_in_using_magic_link: + sign_in_using_strava: + sign_up: + shared: + bike_search_form: + anywhere: + doesnt_look_like_serial: + miles_of: + search_bike_descriptions: + search_for_serial_number: + search_owner_email: + submit: + within: + claim_message: + public_resource_reunited_value_html: + registered_your_bike_on_index: + sign_up: + supercharge_if_your_bike_stolen: + to_see_your_bike_sign_up_html: + content_skeleton: + about: + bicycle_serials: + bike_index_news: + bike_index_store: + design_and_developer_resources: + donate: + donate_today: + forum: + help: + how_to_get_your_stolen_bike_back: + make_a_difference: + other_pages: + protect_your_bike: + related: + sign_up_your_organization: + where: + donation_form: + 501c3_nonprofit: + bike_index_is_a_nonprofit_html: + next: + other_amount: + skip: + subheader_1: + subheader_2: + what_does_your_donation_do: + donation_modal: + donation_header: + edit_bike_skeleton: + edit: + owned_but_hasnt_been_claimed_html: + owned_with_permission_to_edit_html: + view_bike: + view_bike_version: + email_bike_box: + color: + color_may_be_incorrect: + found: + make: + serial: + stolen_at: + stolen_from: + errors: + error: + errors_prevented_this_from_being_saved: + faq: + absolutely: + add_a_stolen_bike_link: + add_details: + article_link: + bike_index_is_that_resource: + bike_serial_number: + bike_was_already_stolen: + bikes_are_public_and_searchable: + blog_link: + can_partner_with_bikeindex: + can_thieves_search: + can_you_tell_me_what_bike_by_serial: + comprehensive_public_database: + email_us_html: + everyone_can_register_bikes_for_free: + faqs: + follow_us_html: + free_to_transfer: + go_to_edit_page: + how_bikes_are_verified: + how_can_i_advertise: + how_can_i_stay_up_to_date: + how_does_this_prevent_bike_theft: + in_the_process_of_setting_up_advertising: + not_yet: + organization_signup_html: + organization_signup_link: + other_registries_html: + partner_link: + people_with_good_intentions: + possible_but_uncommon: + read_our_blog_html: + registration_html: + reveal_owner_email_html: + security_by_obscurity_link: + serial_numbers_public: + similar_serials: + the_faster_and_easier_it_is: + this_isnt_optimistic_speculation: + to_learn_more_html: + verification_questions: + visit_or_add_html: + we_care_about_your_privacy: + we_offer_bike_shops: + we_recommend_searching: + we_successfully_recover: + weve_recovered_bikes: + what_about_my_privacy: + what_if_i_sell_my_bike: + while_serial_numbers: + who_can_register_bikes: + why_public: + your_personal_information_is_never_viewed: + footer: + about_bike_index: + bike_index_news: + bike_index_partner_organizations: + bike_index_resources: + contact_us: + help: + list_of_manufacturers: + privacy_policy: + register_a_bike: + sign_up_a_shop_or_organization: + terms_and_conditions: + vendor_terms: + footer_revised: + about: + ambassadors: + api_documentation: + bike_index: + bike_manufacturer_list: + bike_shops: + blog: + change_preferred_language: + cities: + community_groups: + copyright_html: + design_logos: + dev_resources: + donate: + faq: + help: + how_to_get_your_stolen_bike_back: + language: + law_enforcement: + press_inquiries: + privacy_policy: + protect_your_bike: + resources: + schools_and_universities: + security: + stolen_bike_map: + stolen_bike_recoveries: + store: + support_us: + terms_and_conditions: + vendor_terms: + where_we_are: + who_we_serve: + form_well_footer_save: + save_changes: + header_nav: + log_in: + log_out: + preferences: + sign_up: + superuser_home: + you: + your_bikes: + your_preferences: + law_enforcement_donation_modal: + bikeindex_is_a_nonprofit: + contact_bike_owners: + email_for_access_html: + greeting: + law_enforcement_features: + multiple_serial_search_pane: + thank_you: + thanks_for_using_bike_index: + organized_menu_items: + add_a_bike: + ascend_imports: + bulk_imports: + custom_emails: + discuss: + exports: + getting_started: + graduated_notifications: + impounded_bikes: + impounded_claims: + incomplete_registrations: + lightspeed_integration_panel: + manage_impounding: + manage_users: + model_audits: + multi_serial_search: + org_bikes: + org_dashboard: + org_locations: + org_profile: + parking_notification_unregistered: + parking_notifications: + recoveries: + registration_stickers: + resources: + stolen_hot_sheet: + stolen_hot_sheet_configuration: + stolen_message: + super_admin_view: + organized_skeleton: + additional_features_html: + admin_panel: + how_integration_works: + integrate_bike_index_with_ascend: + integrate_bike_index_with_lightspeed: + link_to_register_html: + other_point_of_sale_system: + read_a_full_explanation_html: + register_bikes_with_link_html: + streamlined_bike_shop_registration_page: + subscription_expired_html: + use_ascend: + use_lightspeed_retail_pos: + viewing_our_streamlined_page: + period_select: + all: + custom: + day: + from: + hour: + next: + past: + seven_days: + thirty_days: + to: + update: + year: + user_general_alert: + add_location_theft_bike_title_html: + add_photo_theft_bike_title_html: + confirm_your_phone_number: + location_critical_html: + missing_stolen_photo_title: + photo_critical_html: + stolen_missing_location_title: + verification_code: + verify_number: + without_location_all_is_lost: + without_photo_all_is_lost: + stolen: + index: + ambassador: + bike_index: + bike_index_will_broadcast: + check_out_your_local_flea_market: + donation: + error: + file_a_police_report: + if_you_are_here_your_bike_was_probably_stolen: + keep_an_eye_on_craigslist: + list_recent_stolen_bikes_html: + look_for_local_stolen_bike_groups_on_face: + make_sure_your_bike_is_registered_html: + other_recovery_tools: + please_fix_the_following: + please_login_to_make_report_html: + register_it: + report_a_bicycle_chop_shop: + report_bike_theft_issues: + report_someone_selling_a_stolen_bike: + reporting_your_own_bike_stolen_html: + send_alert: + sign_in: + stolen_widget: + tell_everyone_you_know: + we_wish_you_the_best_of_luck_html: + what_happens_next: + what_to_do_if_your_bike_is_stolen: + where_is_this_happening: + your_email_address: + your_local_police_department_will_do_what: + theft_alert_plans: + theft_alert_plan: + days: + user_embeds: + show: + bike: + my_indexed_bikes: + no_photo: + users: + accept_terms: + i_agree_to_tos_html: + submit: + accept_vendor_terms: + i_agree_to_tos_html: + submit: + confirm_error_404: + we_couldnt_find_a_user_with_that_id: + woops: + confirm_error_bad_token: + could_not_find_matching_ticket: + woops: + new: + agree_bikeindex_bikehub_toc_html: + agree_bikeindex_toc_html: + already_have_a_bike_index_account: + already_have_an_account: + better_password: + get_bike_indexs_newsletter: + get_on_bike_index: + log_in: + password_helper_text_html: + sign_up: + sign_up_using_facebook: + sign_up_using_globalid: + sign_up_using_strava: + terms_and_conditions: + please_confirm_email: + did_not_get_an_email: + please_verify_your_email: + resend_confirmation_email: + thanks_for_signing_up_for_bike_index: + we_sent_an_email: + we_sent_an_email_to_user_email_html: + request_password_reset_form: + enter_the_email_address: + reset_your_password: + your_email_address: + send_password_reset_email: + follow_the_link_back: + password_reset: + weve_sent_an_email: + show: + bikes: + stolen: + this_user_has_no_bikes_yet: + this_users_bikes: + unsubscribe: + if_not_click_button: + unsubscribe: + you_should_be_unsubscribed_automatically: + update_password_form_with_reset_token: + and_try_not_to_forget_it: + better_password: + choose_a_new_password: + password: סיסמא + password_confirmation: + password_helper_text_html: + update_password: + update_your_password: + welcome: + choose_registration: + add_a_bike_through: + add_a_stolen_bike: + add_abandoned_bike_you_found: + add_your_own_bike: + register_bike: + goodbye: + come_back_soon: + youve_been_logged_out: + index: + alert_the_community: + bike_index_statistics: + bikes_registered_this_week: + but_how_does_it_work: + hero: + how_it_works: + identifying_your_bike: + if_your_bike_goes_missing: + partner_organizations: + read_more_recovery_stories: + recent_recovery_stories: + recover_your_bike_for_free: + register_now: + register_your_bike: + stolen_bikes_recovered: + stolen_bikes_registered: + the_community_responds: + total_bikes_registered: + total_recovery_value: + used_by: + value_of_bikes_recovered: + you_get_your_bike_back: + recovery_stories: + recovery_stories: + update_browser: + go_here_to_learn_more: + oh_no: + unsupported_browser: diff --git a/config/locales/translation.it.yml b/config/locales/translation.it.yml new file mode 100644 index 0000000000..09be030478 --- /dev/null +++ b/config/locales/translation.it.yml @@ -0,0 +1,4539 @@ +# WARNING. THIS FILE WAS AUTO-GENERATED BY THE TRANSLATION GEM. +# IF YOU UPDATE IT, YOUR CHANGES WILL BE LOST AT THE NEXT SYNC. +# +# To update this file, use this translation interface: +# https://translation.io/bikeindex/bike_index/it +# +--- +it: + gflash: + titles: + warning: + error: + notice: + progress: + success: + date: + day_names: + - domenica + - lunedì + - martedì + - mercoledì + - giovedì + - venerdì + - sabato + abbr_day_names: + - dom + - lun + - mar + - mer + - gio + - ven + - sab + month_names: + - + - gennaio + - febbraio + - marzo + - aprile + - maggio + - giugno + - luglio + - agosto + - settembre + - ottobre + - novembre + - dicembre + abbr_month_names: + - + - gen + - feb + - mar + - apr + - mag + - giu + - lug + - ago + - set + - ott + - nov + - dic + time: + am: am + pm: pm + number: + human: + storage_units: + units: + byte: + one: Byte + other: Byte + kb: KB + mb: MB + gb: GB + tb: TB + pb: + eb: + decimal_units: + units: + thousand: Mila + million: Milioni + billion: Miliardi + trillion: Bilioni + quadrillion: Biliardi + errors: + format: "%{attribute} %{message}" + messages: + model_invalid: 'Validazione fallita: %{errors}' + inclusion: non è compreso tra le opzioni disponibili + exclusion: è riservato + invalid: non è valido + confirmation: non coincide con %{attribute} + accepted: deve essere accettata + empty: non può essere vuoto + blank: non può essere lasciato in bianco + present: deve essere lasciato in bianco + too_long: + one: è troppo lungo (il massimo è 1 carattere) + other: è troppo lungo (il massimo è %{count} caratteri) + too_short: + one: è troppo corto (il minimo è 1 carattere) + other: è troppo corto (il minimo è %{count} caratteri) + wrong_length: + one: è della lunghezza sbagliata (deve essere di 1 carattere) + other: è della lunghezza sbagliata (deve essere di %{count} caratteri) + not_a_number: non è un numero + not_an_integer: non è un numero intero + greater_than: deve essere maggiore di %{count} + greater_than_or_equal_to: deve essere maggiore o uguale a %{count} + equal_to: deve essere uguale a %{count} + less_than: deve essere minore di %{count} + less_than_or_equal_to: deve essere minore o uguale a %{count} + other_than: devono essere di numero diverso da %{count} + odd: deve essere dispari + even: deve essere pari + required: deve esistere + taken: è già presente + carrierwave_processing_error: + carrierwave_integrity_error: + carrierwave_download_error: + extension_white_list_error: + extension_black_list_error: + rmagick_processing_error: + mime_types_processing_error: + mini_magick_processing_error: + in: + invalid_currency: + record_invalid: 'Validazione fallita: %{errors}' + template: + body: 'Ricontrolla i seguenti campi:' + header: + one: 'Non posso salvare questo %{model}: 1 errore' + other: 'Non posso salvare questo %{model}: %{count} errori.' + bad_request: + explanation: + send_me_back: + not_found: + explanation: + send_me_back: + server_error: + explanation: + send_me_back: + unauthorized: + explanation: + send_me_back: + unprocessable_entity: + contact: + contact_email: + explanation_html: + send_me_back: + activerecord: + errors: + messages: + record_invalid: 'Validazione fallita: %{errors}' + restrict_dependent_destroy: + has_one: Il record non può essere cancellato perchè esiste un %{record} + dipendente + has_many: Il record non può essere cancellato perchè esistono %{record} + dipendenti + access_denied: Il proprietario della risorsa o il server di autorizzazione + rifiuta la richiesta. + admin_authenticator_not_configured: Access to admin panel is forbidden due + to Doorkeeper.configure.admin_authenticator being unconfigured. + credential_flow_not_configured: Il flusso di credenziali utente è fallito + perchè Doorkeeper.configure.resource_owner_from_credentials deve essere + configurato. + invalid_client: L'autenticazione client è fallita a causa di client sconosciuto, + nessuna autenticazione client inclusa, o metodo di autenticazione non supportato. + invalid_code_challenge_method: The code challenge method must be plain or + S256. + invalid_grant: L'autorizzazione richiesta non è valida, scaduta, revocata, + non corrisponde all'uri di redirezione usato nella richiesta di autorizzazione, + o è stata richiesta da un altro client. + invalid_redirect_uri: L'uri di redirect incluso non è valido. + invalid_request: + missing_param: 'Missing required parameter: %{value}.' + request_not_authorized: Request need to be authorized. Required parameter + for authorizing request is missing or invalid. + unknown: Manca un parametro obbligatorio nella richiesta, include un valore + non supportato, oppure è malformata. + invalid_scope: Lo scope della richiesta non è valido, sconosciuto, o malformato. + invalid_token: + expired: Il token di accesso è scaduto + revoked: Il token di accesso è stato revocato + unknown: Il token di accesso non è valido + resource_owner_authenticator_not_configured: La ricerca dell'utente è fallita + perchè Doorkeeper.configure.resource_owner_authenticator deve essere configurato. + revoke: + unauthorized: Non sei autorizzato a revocare questo token + server_error: Il server di autorizzazione ha rilevato una condizione inaspettata + che ha impedito di soddisfare la richiesta. + temporarily_unavailable: Il server di autorizzazione non è momentaneamente + disponibile a causa di un sovraccarico temporaneo o di manutenzione. + unauthorized_client: Il client non è autorizzato per effettuare questa richiesta + utilizzando questo metodo. + unsupported_grant_type: Il tipo di autorizzazione richista non è supportato + dal server di autorizzazione. + unsupported_response_mode: + unsupported_response_type: Il server di autorizzazione non supporta questo + response type. + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: non può contenere un fragment. + invalid_uri: deve essere un URI valido. + unspecified_scheme: deve specificare uno schema. + relative_uri: deve essere un URI assoluto. + secured_uri: deve essere un URI HTTPS/SSL. + forbidden_uri: è vietato dal server. + scopes: + not_match_configured: doesn't match configured on the server. + bike: + not_found: + bike_sticker: + not_found: + unauthorized_to_claim: + export: + required: + impound_record: + user_not_authorized: + manufacturer: + cannot_match_a_color_name: + organization_message: + latlon_required: + required: + parking_notification: + address_required: + payment: + requires_email_or_org: + recovery_display: + quote_too_long: + theft_alert: + must_be_later_than_start_time: + must_be_present: + user: + email_already_exists: + not_an_available_language: + organization: + duplicate_short_name: + attributes: + doorkeeper/application: + name: Nome + redirect_uri: Redirect URI + scopes: + access_grants: + access_tokens: + authorized_applications: + authorized_tokens: + can_send_stolen_notifications: + is_internal: + owner_type: + secret: Secret + uid: + ad: + body: + image: + live: + target_url: + title: + ambassador: + ambassador_task_assignments: + ambassador_tasks: + auth_token: + avatar: + banned: + can_send_many_stolen_notifications: + city: + confirmation_token: Token di conferma + confirmed: + created_bikes: + created_ownerships: + creation_states: + current_ownerships: + currently_owned_bikes: + description: + developer: + email: Email + integrations: + last_login_at: + last_login_ip: + latitude: + locks: + longitude: + magic_link_token: + memberships: + my_bikes_hash: + name: Nome + notification_newsletters: + notification_unstolen: + oauth_applications: + organization_embeds: + organizations: + owned_bikes: + ownerships: + partner_data: + password: Password + password_digest: + password_reset_token: + payments: + phone: + preferred_language: + received_stolen_notifications: + sent_memberships: + sent_stolen_notifications: + show_bikes: + show_phone: + show_twitter: + show_website: + street: + subscriptions: + superuser: + terms_of_service: + title: + twitter: + user_emails: + username: + vendor_terms_of_service: + website: + when_vendor_terms_of_service: + zipcode: + ambassador_task: + ambassador_task_assignments: + ambassadors: + description: + title: + ambassador_task_assignment: + completed_at: + b_param: + bike_errors: + bike_title: + email: Email + id_token: + image: + image_processed: + image_tmp: + old_params: + origin: + params: + bike: + abandoned: + all_description: + approved_stolen: + b_params: + belt_drive: + bike_organizations: + bike_stickers: + cached_data: + can_edit_claimed_bike_organizations: + can_edit_claimed_organizations: + coaster_brake: + components: + creation_states: + cycle_type: + description: + duplicate_bike_groups: + example: + extra_registration_number: + frame_material: + frame_model: + frame_size: + frame_size_number: + frame_size_unit: + front_tire_narrow: + handlebar_type: + hidden: + is_for_sale: + listing_order: + made_without_serial: + manufacturer_other: + mnfg_name: + name: Nome + normalized_serial_segments: + number_of_seats: + organizations: + owner_email: + ownerships: + pdf: + propulsion_type: + public_images: + rear_tire_narrow: + recovered_records: + registered_new: + serial_normalized: + serial_number: + stock_photo_url: + stolen: + stolen_notifications: + stolen_records: + thumb_path: + video_embed: + year: Anno + zipcode: + bike_organization: + can_not_edit_claimed: + deleted_at: + bike_sticker: + claimed_at: + code: + code_integer: + code_prefix: + kind: + bike_sticker_batch: + bike_stickers: + code_number_length: + notes: + blog: + body: + body_abbr: + description_abbr: + index_image: + index_image_lg: + is_listicle: + listicles: + old_title_slug: + public_images: + published: + published_at: + tags: + title: + title_slug: + bulk_import: + bikes: + creation_states: + file: + import_errors: + is_ascend: + no_notify: + progress: + cgroup: + ctypes: + description: + name: Nome + slug: + color: + bikes: + display: + name: Nome + paints: + priority: + component: + component_model: + ctype_other: + description: + front: + is_stock: + manufacturer_other: + rear: + serial_number: + year: Anno + country: + iso: + locations: + name: Nome + stolen_records: + creation_state: + is_bulk: + is_new: + is_pos: + origin: + pos_kind: + ctype: + components: + has_multiple: + image: + name: Nome + secondary_name: + slug: + customer_contact: + body: + contact_type: + creator_email: + info_hash: + kind: + title: + user_email: + doorkeeper/access_grant: + expires_in: + redirect_uri: + revoked_at: + scopes: + token: + doorkeeper/access_token: + expires_in: + refresh_token: + revoked_at: + scopes: + token: + duplicate_bike_group: + added_bike_at: + bikes: + ignore: + normalized_serial_segments: + export: + file: + file_format: + kind: + options: + progress: + rows: + feedback: + body: + email: Email + feedback_hash: + feedback_type: + name: Nome + title: + flipper/adapters/active_record/feature: + key: + flipper/adapters/active_record/gate: + feature_key: + key: + value: + front_gear_type: + bikes: + count: + internal: + name: Nome + slug: + standard: + integration: + access_token: + information: + provider_name: + invoice: + amount_due_cents: + amount_paid_cents: + force_active: + invoice_organization_features: + is_active: + notes: + organization_features: + payments: + subscription_end_at: + subscription_start_at: + listicle: + body: + body_html: + crop_top_offset: + image: + image_credits: + image_credits_html: + image_height: + image_width: + list_order: + title: + location: + bikes: + city: + deleted_at: + email: Email + latitude: + longitude: + name: Nome + phone: + shown: + street: + zipcode: + lock: + combination: + has_combination: + has_key: + key_serial: + lock_model: + manufacturer_other: + notes: + lock_type: + name: Nome + slug: + mail_snippet: + address: + body: + is_enabled: + is_location_triggered: + kind: + latitude: + longitude: + name: Nome + proximity_radius: + public_images: + manufacturer: + bikes: + close_year: + components: + description: + frame_maker: + locks: + logo: + logo_source: + name: Nome + notes: + open_year: + paints: + slug: + total_years_active: + website: + membership: + claimed_at: + deleted_at: + email_invitation_sent_at: + invited_email: + role: + normalized_serial_segment: + segment: + organization: + access_token: + api_access_approved: + approved: + ascend_name: + avatar: + b_params: + bike_organizations: + bike_stickers: + bikes: + child_organizations: + created_bikes: + creation_states: + deleted_at: + enabled_feature_slugs: + invoices: + is_paid: + kind: + landing_html: + locations: + lock_show_on_map: + mail_snippets: + memberships: + name: Nome + payments: + pos_kind: + previous_slug: + public_images: + recovered_records: + registration_field_labels: + short_name: + show_on_map: + slug: + users: + website: + organization_feature: + amount_cents: + description: + details_link: + feature_slugs: + invoice_organization_features: + invoices: + kind: + name: Nome + ownership: + claimed: + current: + example: + owner_email: + send_email: + user_hidden: + paint: + bikes: + name: Nome + payment: + amount_cents: + email: Email + first_payment_date: + is_current: + is_payment: + is_recurring: + kind: + last_payment_date: + public_image: + external_image_url: + image: + imageable_type: + is_private: + listing_order: + name: Nome + rear_gear_type: + bikes: + count: + internal: + name: Nome + slug: + standard: + recovery_display: + image: + link: + quote: + quote_by: + recovered_at: + state: + abbreviation: + locations: + name: Nome + stolen_records: + stolen_notification: + message: + receiver_email: + reference_url: + send_dates: + subject: + stolen_record: + approved: + can_share_recovery: + city: + create_open311: + current: + date_stolen: + estimated_value: + index_helped_recovery: + latitude: + lock_defeat_description: + locking_description: + longitude: + phone: + phone_for_everyone: + phone_for_police: + phone_for_shops: + phone_for_users: + police_report_department: + police_report_number: + proof_of_ownership: + receive_notifications: + recovered_at: + recovered_description: + recovery_display_status: + recovery_link_token: + recovery_posted: + recovery_share: + recovery_tweet: + secondary_phone: + street: + theft_alerts: + theft_description: + time: + tsved_at: + zipcode: + theft_alert: + end_at: + notes: + start_at: + status: + theft_alert_plan: + active: + amount_cents: + description: + duration_days: + name: Nome + stolen_records: + theft_alerts: + views: + tweet: + alignment: + body_html: + image: + public_images: + twitter_response: + user: + ambassador_task_assignments: + ambassador_tasks: + auth_token: + avatar: + banned: + can_send_many_stolen_notifications: + city: + confirmation_token: Token di conferma + confirmed: + created_bikes: + created_ownerships: + creation_states: + current_ownerships: + currently_owned_bikes: + description: + developer: + email: Email + integrations: + last_login_at: + last_login_ip: + latitude: + locks: + longitude: + magic_link_token: + memberships: + my_bikes_hash: + name: Nome + notification_newsletters: + notification_unstolen: + oauth_applications: + organization_embeds: + organizations: + owned_bikes: + ownerships: + partner_data: + password: Password + password_digest: + password_reset_token: + payments: + phone: + preferred_language: + received_stolen_notifications: + sent_memberships: + sent_stolen_notifications: + show_bikes: + show_phone: + show_twitter: + show_website: + street: + subscriptions: + superuser: + terms_of_service: + title: + twitter: + user_emails: + username: + vendor_terms_of_service: + website: + when_vendor_terms_of_service: + zipcode: + user_email: + confirmation_token: Token di conferma + email: Email + wheel_size: + bikes: + description: + iso_bsd: + name: Nome + priority: + enums: + cycle_type: + bike: + cargo: + cargo_rear: + cargo_trike: + cargo_trike_rear: + e_scooter: + e_skateboard: + non_e_scooter: + non_e_skateboard: + pedi_cab: + penny_farthing: + personal_mobility: + recumbent: + stroller: + tall_bike: + tandem: + trail_behind: + trailer: + tricycle: + unicycle: + wheelchair: + frame_material: + aluminum: + composite: + magnesium: + organic: + steel: + titanium: + handlebar_type: + bmx: + drop_bar: + flat: + forward: + other: + rearward: + propulsion_type: + foot_pedal: + hand_pedal: + human_not_pedal: + pedal_assist: + pedal_assist_and_throttle: + throttle: + models: + ad: + ambassador: + ambassador_task: + ambassador_task_assignment: + b_param: + bike: + bike_organization: + bike_sticker: + bike_sticker_batch: + blog: + bulk_import: + cgroup: + color: + component: + country: + creation_state: + ctype: + customer_contact: + doorkeeper/access_grant: + doorkeeper/access_token: + doorkeeper/application: + duplicate_bike_group: + export: + feedback: + flipper/adapters/active_record/feature: + flipper/adapters/active_record/gate: + front_gear_type: + integration: + invoice: + invoice_organization_feature: + listicle: + location: + lock: + lock_type: + mail_snippet: + manufacturer: + membership: + normalized_serial_segment: + organization: + organization_feature: + organization_message: + other_listing: + ownership: + paint: + payment: + public_image: + rear_gear_type: + recovery_display: + state: + stolen_notification: + stolen_record: + theft_alert: + theft_alert_plan: + tweet: + user: + user_email: + wheel_size: + select_options: + color: + black: + blue: + brown: + green: + orange: + pink: + purple: + red: + silver_gray_or_bare_metal: + stickers_tape_or_other_cover_up: + teal: + white: + yellow_or_gold: + ctype: + aero_bars_extensions_bar_ends: + axle_nuts: + bashguard_chain_guide: + basket: + bell_noisemaker: + bottom_bracket: + brake: + brake_cable: + brake_lever: + brake_pad: + brake_rotor: + chain: + chain_tensioners: + chainrings: + cog_cassette_freewheel: + computer: + crankset: + derailleur: + detangler: + fairing: + fender: + fork: + generator_dynamo: + grips_tape: + handlebar: + headset: + hub: + hub_guard: + kickstand: + lights: + other: + pedals: + pegs: + rack: + rear_suspension: + rim: + saddle: + seatpost: + seatpost_clamp: + shift_and_brake_lever: + shift_cable: + shifter: + spokes: + stem: + tire: + toe_clips: + training_wheels: + tube: + unknown: + water_bottle_cage: + wheel: + organization: + organization_affiliation_options: + community_member: + employee: + graduate_student: + student: + stolen_record: + bike_was_not_locked: + cable_lock: + chain_with_padlock: + heavy_duty_bicycle_security_chain: + lock_is_missing_along_with_the_bike: + lock_was_cut_and_left_at_the_scene: + lock_was_opened_and_left_unharmed_at_the_scene: + not_locked: + object_that_bike_was_locked_to_was_broken_removed_or_otherwise_compromised: + other: + other_situation_please_describe_below: + two_u_locks: + u_lock: + u_lock_and_cable: + status_humanized: + bike: + abandoned: + found: + impounded: + stolen: + unregistered: + with_owner: + datetime: + distance_in_words: + half_a_minute: mezzo minuto + less_than_x_seconds: + one: meno di un secondo + other: meno di %{count} secondi + x_seconds: + one: 1 secondo + other: "%{count} secondi" + less_than_x_minutes: + one: meno di un minuto + other: meno di %{count} minuti + x_minutes: + one: 1 minuto + other: "%{count} minuti" + about_x_hours: + one: circa un'ora + other: circa %{count} ore + x_days: + one: 1 giorno + other: "%{count} giorni" + about_x_months: + one: circa un mese + other: circa %{count} mesi + x_months: + one: 1 mese + other: "%{count} mesi" + about_x_years: + one: circa un anno + other: circa %{count} anni + over_x_years: + one: oltre un anno + other: oltre %{count} anni + almost_x_years: + one: circa 1 anno + other: circa %{count} anni + x_years: + one: 1 anno + other: "%{count} anni" + prompts: + year: Anno + month: Mese + day: Giorno + hour: Ora + minute: Minuto + second: Secondi + helpers: + select: + prompt: Seleziona... + submit: + create: Crea %{model} + update: Aggiorna %{model} + submit: Invia %{model} + page_entries_info: + entry: + zero: + one: + other: + one_page: + display_entries: + zero: + one: "%{count} %{entry_name}" + other: "Tutti %{count} %{entry_name}" + more_pages: + display_entries: "%{entry_name} %{first} - %{last} di %{total} + totali" + bike_helper: + hidden: + hidden_because_status: + hidden_for_unauthorized_users: + made_without_serial: + unknown: + organization_helper: + address: + address_school: + your_full_address_is_required: + grape: + errors: + format: + messages: + coerce: non è valido + presence: + regexp: non è valido + blank: + values: + except_values: + same_as: + missing_vendor_option: + problem: + summary: + resolution: + missing_mime_type: + problem: + resolution: + invalid_with_option_for_represent: + problem: + resolution: + missing_option: + invalid_formatter: + invalid_versioner_option: + problem: + resolution: + unknown_validator: + unknown_options: + unknown_parameter: + incompatible_option_values: + mutual_exclusion: + at_least_one: + exactly_one: + all_or_none: + missing_group_type: + unsupported_group_type: + invalid_message_body: + problem: + resolution: + empty_message_body: + too_many_multipart_files: + invalid_accept_header: + problem: + resolution: + invalid_version_header: + problem: + resolution: + invalid_response: + flash: + actions: + create: + notice: + update: + notice: + destroy: + notice: + alert: + i18n_tasks: + add_missing: + added: + one: + other: + cmd: + args: + default_text: + desc: + all_locales: + config: + confirm: + data_format: + keep_order: + key_pattern: + key_pattern_to_rename: + locale_to_translate_from: + locales_filter: + missing_types: + new_key_name: + nostdin: + out_format: + pattern_router: + strict: + translation_backend: + value: + desc: + add_missing: + check_consistent_interpolations: + check_normalized: + config: + data: + data_merge: + data_remove: + data_write: + eq_base: + find: + gem_path: + health: + irb: + missing: + mv: + normalize: + remove_unused: + rm: + translate_missing: + tree_convert: + tree_filter: + tree_merge: + tree_mv_key: + tree_set_value: + tree_subtract: + tree_translate: + unused: + encourage: + - + - + - + enum_list_opt: + invalid: + enum_opt: + invalid: + errors: + invalid_format: + invalid_locale: + invalid_missing_type: + one: + other: + pass_forest: + common: + continue_q: + key: + locale: + n_more: + value: + data_stats: + text: + text_single_locale: + title: + deepl_translate: + errors: + no_api_key: + no_results: + specific_target_missing: + google_translate: + errors: + no_api_key: + no_results: + health: + no_keys_detected: + inconsistent_interpolations: + none: + missing: + details_title: + none: + openai_translate: + errors: + no_api_key: + no_results: + remove_unused: + confirm: + one: + other: + noop: + removed: + translate_missing: + translated: + unused: + none: + usages: + none: + yandex_translate: + errors: + no_api_key: + no_results: + countries: + AC: + AD: + AE: + AF: + AG: + AI: + AL: + AM: + AN: + AO: + AQ: + AR: + AS: + AT: + AU: + AW: + AX: + AZ: + BA: + BB: + BD: + BE: + BF: + BG: + BH: + BI: + BJ: + BL: + BM: + BN: + BO: + BQ: + BR: + BS: + BT: + BV: + BW: + BY: + BZ: + CA: + CC: + CD: + CF: + CG: + CH: + CI: + CK: + CL: + CM: + CN: + CO: + CP: + CR: + CU: + CV: + CW: + CX: + CY: + CZ: + DE: + DG: + DJ: + DK: + DM: + DO: + DZ: + EA: + EC: + EE: + EG: + EH: + ER: + ES: + ET: + EU: + FI: + FJ: + FK: + FM: + FO: + FR: + GA: + GB: + GD: + GE: + GF: + GG: + GH: + GI: + GL: + GM: + GN: + GP: + GQ: + GR: + GS: + GT: + GU: + GW: + GY: + HK: + HM: + HN: + HR: + HT: + HU: + IC: + ID: + IE: + IL: + IM: + IN: + IO: + IQ: + IR: + IS: + IT: + JE: + JM: + JO: + JP: + KE: + KG: + KH: + KI: + KM: + KN: + KP: + KR: + KW: + KY: + KZ: + LA: + LB: + LC: + LI: + LK: + LR: + LS: + LT: + LU: + LV: + LY: + MA: + MC: + MD: + ME: + MF: + MG: + MH: + MK: + ML: + MM: + MN: + MO: + MP: + MQ: + MR: + MS: + MT: + MU: + MV: + MW: + MX: + MY: + MZ: + NA: + NC: + NE: + NF: + NG: + NI: + NL: + 'NO': + NP: + NR: + NU: + NZ: + OM: + PA: + PE: + PF: + PG: + PH: + PK: + PL: + PM: + PN: + PR: + PS: + PT: + PW: + PY: + QA: + QO: + RE: + RO: + RS: + RU: + RW: + SA: + SB: + SC: + SD: + SE: + SG: + SH: + SI: + SJ: + SK: + SL: + SM: + SN: + SO: + SR: + SS: + ST: + SV: + SX: + SY: + SZ: + TA: + TC: + TD: + TF: + TG: + TH: + TJ: + TK: + TL: + TM: + TN: + TO: + TR: + TT: + TV: + TW: + TZ: + UA: + UG: + UM: + US: + UY: + UZ: + VA: + VC: + VE: + VG: + VI: + VN: + VU: + WF: + WS: + XK: + YE: + YT: + ZA: + ZM: + ZW: + doorkeeper: + applications: + confirmations: + destroy: Sei sicuro? + buttons: + edit: Modifica + destroy: Elimina + submit: Invia + cancel: Annulla + authorize: Autorizza + form: + error: Ops! Controlla la form per possibili errori + help: + confidential: Application will be used where the client secret can be kept + confidential. Native mobile apps and Single Page Apps are considered non-confidential. + redirect_uri: Usa una riga per URI + blank_redirect_uri: Leave it blank if you configured your provider to use + Client Credentials, Resource Owner Password Credentials or any other grant + type that doesn't require redirect URI. + scopes: + native_redirect_uri: + edit: + title: Modifica l'applicazione + index: + title: Le tue applicazioni + new: Nuova Applicazione + name: Nome + callback_url: Callback URL + confidential: Confidential? + actions: Actions + confidentiality: + 'yes': Sì + 'no': 'No' + new: + title: Nuova Applicazione + show: + title: 'Applicazione: %{name}' + application_id: Id Applicazione + secret: Secret + scopes: + confidential: Confidential + callback_urls: Callback urls + actions: Azioni + authorizations: + buttons: + authorize: Autorizza + deny: Nega + error: + title: Si è verificato un errore + new: + title: Richiesta di autorizzazione + prompt: Autorizzi %{client_name} ad usare il tuo account? + able_to: Questa applicazione portà + show: + title: Codide di autorizzazione + authorized_applications: + confirmations: + revoke: Sei sicuro? + buttons: + revoke: Revoca + index: + title: Applicazioni autorizzate + application: Applicazione + created_at: Creata il + date_format: "%Y-%m-%d %H:%M:%S" + pre_authorization: + status: Pre-authorization + errors: + messages: + invalid_request: + unknown: Manca un parametro obbligatorio nella richiesta, include un valore + non supportato, oppure è malformata. + missing_param: 'Missing required parameter: %{value}.' + not_support_pkce: + request_not_authorized: Request need to be authorized. Required parameter + for authorizing request is missing or invalid. + invalid_redirect_uri: L'uri di redirect incluso non è valido. + unauthorized_client: Il client non è autorizzato per effettuare questa richiesta + utilizzando questo metodo. + access_denied: Il proprietario della risorsa o il server di autorizzazione + rifiuta la richiesta. + invalid_scope: Lo scope della richiesta non è valido, sconosciuto, o malformato. + invalid_code_challenge_method: The code challenge method must be plain or + S256. + server_error: Il server di autorizzazione ha rilevato una condizione inaspettata + che ha impedito di soddisfare la richiesta. + temporarily_unavailable: Il server di autorizzazione non è momentaneamente + disponibile a causa di un sovraccarico temporaneo o di manutenzione. + credential_flow_not_configured: Il flusso di credenziali utente è fallito + perchè Doorkeeper.configure.resource_owner_from_credentials deve essere + configurato. + resource_owner_authenticator_not_configured: La ricerca dell'utente è fallita + perchè Doorkeeper.configure.resource_owner_authenticator deve essere configurato. + admin_authenticator_not_configured: Access to admin panel is forbidden due + to Doorkeeper.configure.admin_authenticator being unconfigured. + unsupported_response_type: Il server di autorizzazione non supporta questo + response type. + invalid_client: L'autenticazione client è fallita a causa di client sconosciuto, + nessuna autenticazione client inclusa, o metodo di autenticazione non supportato. + invalid_grant: L'autorizzazione richiesta non è valida, scaduta, revocata, + non corrisponde all'uri di redirezione usato nella richiesta di autorizzazione, + o è stata richiesta da un altro client. + unsupported_grant_type: Il tipo di autorizzazione richista non è supportato + dal server di autorizzazione. + invalid_token: + revoked: Il token di accesso è stato revocato + expired: Il token di accesso è scaduto + unknown: Il token di accesso non è valido + revoke: + unauthorized: Non sei autorizzato a revocare questo token + invalid_resource_owner: + flash: + applications: + create: + notice: Applicazione creata. + destroy: + notice: Applicazione eliminata. + update: + notice: Applicazione aggiornata. + authorized_applications: + destroy: + notice: Applicazione revocata. + layouts: + admin: + title: Doorkeeper + nav: + oauth2_provider: OAuth2 Provider + applications: Applicazioni + home: Home + application: + title: Richiesta autorizzazione OAuth + scopes: + public: + read_bikes: + read_bikewise: + read_organization_membership: + read_user: + unconfirmed: + write_bikes: + write_bikewise: + write_organizations: + write_user: + views: + pagination: + first: "« Inizio" + last: Fine » + previous: "‹ Prec." + next: Succ. › + truncate: "…" + bike_versions: + index: + primary_colors: + bikes: + bike: + location: + primary_colors: + serial: + bike_show_overlays: + add_a_picture_of_it: + add_a_picture_so_people_know_what_to_look: + add_some_more_information_about_it: + can_we_share_your_story: + claim_bike_type: + claim_it_so_you_can_update_your_listing: + did_we_help: + edit: Modifica + how_did_you_get_it_back: + its_also_how_we_get_better_at_recovering: + mark_graduated_resolved: + mark_parking_resolved: + mark_recovered: + nevermind: + no_futher_action_necessary: + no_one_can_see_it_but_you: + organization_sent_this_message: + please_email_organization_with_questions_html: + please_tell_us_how_you_got_your_bike: + thank_you_for_registering_this_found_bike_type: + this_bike_type_is_hidden: + this_bike_version_is_hidden_html: + were_honored_to_have_your_bike: + were_really_bummed_your_bike_type_was_stolen: + when_did_you_recover_it: + whoa_this_awesome_bike_type_is_yours: + whoa_this_awesome_version_is_yours: + you_have_already_marked_remaining: + you_have_already_marked_resolved: + you_sent_this_bike_html: + your_bike: + index: + all: + miles_of: + no_bikes_matched: + not_marked_stolen: + search_for_stolenness_desc_bikes: + stolen_anywhere: + stolen_within: + you: + main_show_block: + bike_photo: + color_may_not_match: + componentyear: + department_city: + description_of_incident: + distinguishing_features: + found_at: + frame_material: + frame_size: + front: + front_rear: + front_wheel_diameter: + handlebar_type: + impounded_at: + location: + locking_circumvented: + locking_description: + manufacturer: + model: + name: Nome + other: + other_serial: + paint_description: + police_report: + primary_colors: + propulsion_type: + rear: + rear_wheel_diameter: + serial: + stock_photo: + stolen_at: + stolen_details: + vehicle_type: + wheel_diameter: + year: Anno + new: + additional_serial_sticker_number: + affiliation: + are_you_certain: + city: + electric: + enter_bike_type_details_html: + enter_found_bike_type_details_html: + enter_stolen_bike_type_details_html: + how_to_find_serial: + i_just_dont_know_the_serial: + im_100_sure: + is_a_handmade_frame: + it_probably_has_a_serial_number: + mailing_address: + manufacturer: + missing_serial: + model_year: + nevermind: + or: + other_manufacturer: + our_serial_page: + owner_email: + phone: + read_how_to_find_html: + register: + register_with: + required: + select_other: + serial_help: + serial_help_content_html: + state: + sticker_id_html: + student_id: + this_is_a: + traditional_bike: + traditional_bike_definition: + unknown_year: + unsure_or_unknown: + very_few_vehicles_html: + very_very_few_bikes_html: + was_made_before_1970: + without_serial_html: + without_serial_number_html: + zipcode: + organization_stolen_message: + report_link_text: + report_the_theft_to_the_organization_html: + organized_access_panel: + access_panel: + added_to_track_parking_notification: + additional_registrations_information: + additional_registrations_information_visible_because: + additional_registrations_potential_duplicates: + additional_registrations_registered_at: + additional_registrations_this_bike: + address: + address_or_intersection: + as_a_bikeindex_ambassador_html: + assign_sticker: + avery_exportable: + believe_it_is_anyway: + bike_is_not_registered_html: + bike_is_registered: + bike_not_marked_stolen: + choose_country: + city: + claimed: + contact_the_owner_it_is_stolen: + creation_description: + creator: + edit: Modifica + email_to_deal_with_this_html: + is_false: + is_not_registered_html: + is_registered: + is_true: + link_sticker: + link_url_for_online_sighting: + mark_bike_recovered: + missing_address: + missing_owner_name: + model_audit: + not_audited: + or_call_owner_html: + org_can_edit_bike: + org_cannot_edit: + organization_can_edit_after_claimed: + organization_child: + organization_registered: + owner_email: + owner_name: + parking_notification_notes_html: + permission: + registered: + send_message: + state: + sticker: + sticker_code: + support_email: + unable_to_display_additional_information: + unregistered_parking_notification: + user_revoked_permission_html: + waiting_on_device_location: + where_did_you_see_this_bike: + write_a_message: + zipcode: + pdf: + bike_description: + bike_serial: + bikeindex_org: + by: + color: + date_stolen: + department: + description_of_theft: + frame_size: + front_gears: + front_wheel: + location: + manufacturer: + model: + narrow_tires: + online: + owner_phone: + paint: + police_report: + printout: + rear_gears: + rear_wheel: + registered: + registration: + saddle: + stolen: + to: + wide_tires: + with: + with_coaster_brake: + scanned: + added: + color: + isnt_linked_to_a_bike: + link_bike_sticker_kind: + link_it: + manufacturer: + mnfg_model_color_html: + model: + new_bike_link_text: + or_click_html: + please_email_support_html: + please_sign_in: + register_a_new_bike_html: + to_link_that_card_with_a_bike: + update: + you_can_enter_the_url: + you_have_claimed_the_maximum_permitted: + show: + change_the_bike_sticker_linked_to: + contact_the_owner: + created_to_record_parking_notification: + from: + hidden_by_owner: + in: + is_this_linked_to_incorrect_bike: + know_something_about_this_bike_type: + link_url: + looking_for_correct_owner: + no_one_but_the_user_and_bike_index_admins: + not_registered_by_user: + or_call: + owners_phone_number: + send_message: + share_it: + spread_the_word: + switch_to_new_bike_id: + test_registration: + update: + view_users_other_registrations: + where_did_you_see_this_bike: + write_them_a_message: + you_scanned_this_sticker_html: + stolen_checklist: + a_photo_of_your_bike_type: + add: + add_bike_link_to_your_theft_report_html: + add_serial_number: + bike_index_does_this: + contact_seller: + facebook_instagram_etc: + leads_online: + leads_online_url: + list_bike_type_on_bike_index: + location_where_the_theft_occurred: + nl_digid_required: + nl_file_police_report: + nl_online: + nl_person: + nl_person_report: + nl_phone: + nl_phone_report: + nl_website_link_text: + promoted_stolen_bike_alerts: + push_bike_info_to: + push_bike_info_to_law_enforcement: + report_theft_html: + requires_a_serial_number: + share_on_twitter: + share_widely_on_your_personal_social: + supercharge_sharing_on_facebook: + your_police_report: + theft_alerts: + new: + best_value: + bike_index_can_help: + bike_index_promoted_alert: + city_state_country: + days: + here: + no_photos_add_photos_here_html: + preview: + purchase_alert: + select_an_image: + select_an_image_to_see_preview: + targeted_sharing_html: + views: + show: + stay_tuned_for_an_update_once_weve_proces: + thank_you: + your_order_is_pending: + table: + created: + creator: + end: + existing_theft_alerts: + plan: + start: + status: + bikes_edit: + accessories: + add_a_component: + bike_details: + a_qr_sticker: + add_a_sticker_label_html: + add_end: + add_start: + bike_name: + bike_registration: + choose_country: + choose_material: + city: + existing_stickers: + frame_size: + general_description: + made_without_serial: + main_frame_material: + manufacturer: + model_year: + nevermind: + other_serial_or_registration_number: + please_fill_in_both_fields: + reason_for_update: + remove_end: + remove_start: + seat_tube_length: + state: + street: + submit_manufacturer_correction: + submit_serial_correction: + submit_update: + tell_us_about_your_bike: + unknown_year: + unsure_or_unknown: + update_on_bike: + update_serial_number: + update_these_attributes_on_bike_html: + updated_serial: + version_name: + zipcode: + bike_fields: + revised_colors: + add_a_color: + choose_color: + color_help: + primary_color_help_content_html: + primary_frame_color: + remove_color: + secondary_frame_color: + tertiary_frame_color: + revised_component_fields: + component_type: + model: + model_year: + other_manufacturer: + part_description: + part_serial: + part_type: + remove_part: + select_other: + unknown_part_type: + stolen_location: + address_or_intersection: + choose_country: + city: + state: + where_was_it_stolen_type: + zipcode: + drivetrain: + belt_drive: + coaster_brake: + cycle_type: + drivetrain: + drivetrain_type: + fixed: + front_gears: + internal_front_gears: + internal_rear_gears: + nevermind: + propulsion_type: + rear_gears: + select_chainring_count: + select_cog_count: + submit_correction: + submit_update: + traditional_bike_definition: + update_propulsion: + update_vehicle_type: + vehicle_type: + wheels: + edit_bike_organization: + can_edit_this_bike: + manage_organization_information: + manage_organization_information_via: + remove: + groups: + add_an_organization: + are_you_part_of_a_school_want_to_bolster_: + choose_organization: + creation_organization: + groups_and_organizations: + other_organizations: + remove: + ownership: + enter_new_owner_email_to_transfer: + impound_record_page: + new_email_assigned_save_to_update: + sell_trade_or_give_away_this_bike: + this_bike_is_currently_impounded_html: + to_transfer_use_impound_record_page_html: + transfer_ownership: + photos: + drag_and_drop_files_here_html: + drag_the_uploaded_photos: + finished_uploading: + primary_menu: + bike_type_information: + purchase_alert: + save_changes: + theft_information: + publicize: + do_these_things_for_the_best_chance_of_re: + help_me_find_bike: + share_on_facebook: + share_on_twitter: + share_your_listing_so_everyone_knows_to_w: + remove: + delete_bike: + delete_this_bike: + delete_this_version_html: + faqs: + hide_this_bike: + keeping_your_bike_public: + modal_title: + nevermind: + reason_for_deletion: + reason_modal_body: + reason_modal_title: + unhide_this_bike: + visibility: + we_strongly_recommend: + you_can_read_more_html: + report_recovered: + can_we_share_your_story: + did_we_help: + how_did_you_get_it_back: + its_how_we_get_better_at_recovering_bikes: + mark_recovered: + nevermind: + not_enough_info: + please_tell_us_how_you_got_your_bike: + this_bike_has_been_returned: + were_so_glad: + report_stolen: + this_bike_type_is_stolen_or_missing: + theft_details: + charges_go_to_cost_of_ad: + click_to_see_promoted_alert_blog_post_html: + do_these_things_for_the_best_chance: + here: + promoted_theft_alert_service_description: + promoted_theft_alerts: + try_one_now: + we_can_create_fb_ads_for_you: + theft_details_partial: + department_city: + description_of_the_incident: + do_you_have_proof_of_ownership: + eg_if_we_tweet_about_it: + if_this_bike_type_was_added: + police_report: + receive_notifications: + show_phone_police: + show_phone_shops: + show_phone_users: + when_was_it_stolen_at: + without_a_valid_report_number_html: + wheels: + all_diameters: + choose_diameter: + diameter_700c: + front_tire: + front_wheel: + general_tire: + general_wheel: + hide_extra_sizes: + narrow: + narrow_title: + rear_tire: + rear_wheel: + show_more_sizes: + wide: + wide_help: + wide_title: + controllers: + application: + handle_unverified_request: + csrf_invalid: + bike_stickers: + find_bike_sticker: + must_be_signed_in: + unable_to_find_sticker: + update: + cannot_update: + bikes: + assign_bike_stickers: + sticker_assigned: + unable_to_find_sticker: + create: + bike_was_added: + bike_was_sent_to: + edit: + accessories: + alert: + bike_details: + bike_or_version_version: + drivetrain: + found_details: + groups: + ownership: + photos: + publicize: + remove: + report_recovered: + report_stolen: + theft_details: + versions: + ensure_user_allowed_to_edit: + bike_has_not_been_claimed_yet: + bike_impounded: + bike_impounded_by_organization: + you_dont_own_that: + you_have_to_sign_in: + index: + we_dont_know_location: + new: + please_sign_in_to_register: + we_couldnt_find_that_registration: + recovery: + ensure_token_match!: + already_recovered: + incorrect_token: + update: + bike_recovered: + resolve_token: + marked_remaining: + marked_retrieved: + notification_already_retrieved: + notification_impounded: + unable_to_find_graduated_notification: + unable_to_find_parking_notification: + scanned: + unable_to_find_sticker: + update: + bike_was_updated: + concerns: + controller_helpers: + authenticate_user: + cannot_find_bike: + create_account: + create_account_to_claim: + owner_already_has_account: + you_have_to_log_in: + ensure_member_of!: + accept_tos_for_orgs: + not_a_member_of_that_org: + please_sign_in: + require_admin!: + not_an_org_admin: + require_index_admin!: + not_permitted_to_do_that: + require_member!: + not_an_org_member: + return_to_if_present: + reset_your_password: + sign_in_if_not!: + please_sign_in: + sessionable: + sign_in_and_redirect: + logged_in: + user_is_banned: + skip_if_signed_in: + already_signed_in: + feedbacks: + block_the_spam: + please_sign_in: + create: + thanks_for_your_message: + we_will_contact_you: + integrations: + integrations_controller_creation_error: + problem_authenticating_with_provider: + locks: + create: + lock_created: + find_lock: + not_your_lock: + my_accounts: + edit: + password: Password + registration_organizations: + sharing: + user_settings: + update: + current_password_doesnt_match: + successfully_updated: + oauth: + applications: + ensure_app_owner!: + not_your_application: + organizations: + create: + organization_created: + find_organization: + not_found: + lightspeed_interface: + must_create_an_account_first: + must_create_an_organization_first: + set_bparam: + no_user: + organized: + ambassador_task_assignments: + update: + could_not_update: + status_updated: + base: + ensure_admin!: + must_be_org_admin: + ensure_ambassador_authorized!: + must_be_ambassador: + must_be_in_ambassador_org: + ensure_not_ambassador_organization!: + must_be_an_admin: + raise_do_not_have_access: + bikes: + update: + unknown_update_action: + bulk_imports: + create: + bulk_import_created: + file_imported: + unable_to_create_bulk_import: + show: + unable_to_find_import: + exports: + create: + wait_to_download: + with_avery_redirect: + create_avery_export: + do_not_have_permission: + sticker_already_assigned: + destroy: + export_deleted: + update: + bike_stickers_removed: + unknown_update_action: + manage_impoundings: + update: + could_not_update: + updated_successfully: + manages: + destroy: + contact_support_to_delete: + deleted_org: + update: + could_not_update: + updated_successfully: + parking_notifications: + create: + successfully_created: + unable_to_create: + stickers: + find_bike_sticker: + unable_to_find_sticker: + update: + cannot_update: + users: + create: + insufficient_invitations: + no_remaining_user_invitations: + user_was_invited: + users_invited: + destroy: + deleted_user: + reject_self_updates: + cannot_remove_yourself: + update: + updated_membership: + ownerships: + show: + no_longer_your_bike: + not_your_bike: + you_claimed_it: + public_images: + create: + cannot_create: + destroy: + cannot_delete: + image_deleted: + ensure_authorized_to_update!: + no_permission_to_edit: + update: + image_updated: + sessions: + create: + invalid_email_or_password: + create_magic_link: + link_sent: + user_not_found: + stolen_notifications: + create: + failure: + thanks: + unauthorized: + theft_alerts: + create: + order_is_pending: + unable_to_process_order: + ensure_user_allowed_to_create_theft_alert: + unauthorized: + user_emails: + confirm: + already_confirmed: + email_confirmed: + incorrect_token: + destroy: + email_primary: + email_removed: + only_email: + ensure_user_email_ownership: + you_must_be_signed_in: + make_primary: + confirm_email_first: + email_has_been_made_primary: + resend_confirmation: + resend_confirmation: + users: + confirm: + already_confirmed: + find_user_from_password_reset_token!: + does_not_match_token: + token_expired: + resend_confirmation_email: + please_sign_in: + resending_email: + reset_password_token_update_form: + link_no_longer_valid: + send_password_reset_email: + email_not_found: + reset_just_sent_wait_a_sec: + show: + user_not_sharing: + unsubscribe: + successfully_unsubscribed: + unsubscribe_update: + successfully_unsubscribed: + update: + accept_tos: + accept_tos_to_use_as_org: + thanks_for_accepting_tos: + you_can_use_bike_index: + you_can_use_bike_index_as_org: + update_password_with_reset_token: + password_reset_successfully: + welcome: + recovery_stories: + no_stories_to_display: + customer_mailer: + additional_email_confirmation: + html: + click_verify_email_html: + if_you_didnt_request_this: + please_confirm_your_additional_email: + user_would_like_to_merge: + verify_email: + subject: + admin_contact_stolen_email: + html: + this_email_is_about: + bike_possibly_found_email: + html: + bike: + bike_registry: + check_out_match_here: + we_think_your_stolen_bike_html: + text: + bike: + bike_registry: + check_out_match_here: + we_think_your_stolen_bike: + confirmation_email: + html: + click_to_verify_html: + please_confirm_your_email_address: + verify_email: + youre_almost_there: + subject: + invoice_email: + html: + donation_will_help: + payment_received: + thank_you_so_much: + thanks_for_signing_up: + we_really_appreciate_your_support: + subject: + magic_login_link_email: + html: + click_the_button: + if_you_did_not_request: + only_valid_once: + sign_in: + subject: + password_reset_email: + html: + if_you_did_not_request_a_new_password_html: + please_click_the_button_below_to_create_a: + reset_password: + tell_us: + whoops_it_appears_you_have_forgotten_your: + subject: + recovered_from_link: + html: + marked_recovered_by: + note_if_you_didnt_recover_html: + the_description_of_the_recovery_was: + were_so_glad_you_got_your_bike_type_back: + your_bike_type_was_marked_recovered_on_bik: + subject: + stolen_bike_alert_email: + html: + alert_retweeted_by_html: + area: + improve_your_chances_of_recovery_by_doing: + stolen_bike_alerter: + this_email_is_about_the_stolen_bike: + we_sent_out_this_tweet_from: + were_spreading_the_word_about_your_stolen: + text: + color: + hopefully_you_find_the_bike_soon: + make: + serial: + we_sent_out_this_tweet_from: + were_spreading_the_word_about_your_stolen: + stolen_notification_email: + html: + if_you_believe_this_email_is_illegitimate: + link: + no_one_should_be_extorted: + please_help_sender_html: + sender_email_sent_you_a_message_html: + stolen_bike_type: + they_believe_it_is_stolen: + this_email_is_about_the_bike_type_register: + update_organization_direct_message_html: + you_can_just_forward_this_message_to: + you_registered_this_bike_type_on: + subject: + updated_terms_email: + html: + as_always_thanks_for_helping_register_bik: + bike_index: + bike_index_privacy_policy: + bike_index_terms_of_service: + bike_index_vendor_terms_of_service: + check_link_to_see_more_html: + gavin_hoover_and_the_bike_index_team: + hello: + help_prevent_bike_theft_html: + here: + make_a_donation: + nothing_significant_has_changed_about_how: + ps_if_you_like_reading_these_kinds_of_doc: + were_emailing_you_because_we_updated_our_: + weve_always_wanted_to_provide_html: + you_may_not_know_but_bike_index_recently_: + subject: + text: + as_always_thanks_for_helping_register_bik: + gavin_hoover_and_the_bike_index_team: + hello: + nothing_significant_has_changed_about_how: + ps_if_you_like_reading_these_kinds_of_doc: + were_emailing_you_because_we_updated_our_: + weve_always_wanted_to_provide_one_free_un: + you_may_not_know_but_bike_index_recently_: + user_alert_email: + html: + this_email_is_about_the_bike_type_register: + welcome_email: + html: + add_some_information_about_your_bikes_whe: + good_thinking_were_glad_youve_joined: + welcome_to_bike_index: + subject: + feedbacks: + form: + email_address: + name: Nome + send_it: + subject: + your_message: + index: + contact_us: + have_a_question_we_havent_answered: + help_with_bike_index: + log_in_to_send_a_comment: + you_can_reach_us_at_contact_html: + info: + about: + about_bike_index: + alumni: + bike_registration_that_works: + bryan_hance_bio_new_html: + cofounded_by_html: + craig_dalton_bio_html: + gavin_hoover_bio_html: + jan_pecnik_bio_html: + merging_the_services: + mike_oleon_bio_html: + nonprofit_status: + seth_built: + seth_herr_bio_html: + seth_herr_image_title: + simple_efficient_effective: + the_team: + widely_used: + dev_and_design: + bike_index_logos_html: + bike_shop_card: + bike_shop_card_pdf_url: + bike_shop_cards_html: + design_resources: + development_resources: + display_widget_html: + flyers_html: + image_assets: + meant_to_be_usable: + nearby_stolen_widget: + nearby_stolen_widget_html: + oauth_apps_html: + oauth_authorized_apps_html: + on_github: + open_source_html: + our_api_documentation: + trifold_flyer: + trifold_flyer_pdf_url: + image_resources: + basic_logo_alt: + basic_logo_html: + basic_logo_in_white_html: + bike_index_image_assets: + black_background_shown_here: + check_out_resources_html: + image_has_no_background: + logo_with_background_cutout_html: + logo_with_blue_shield_html: + logo_with_cutout: + logo_with_stripes: + single_color_logo: + single_color_logo_in_white: + striped_logo_html: + lightspeed: + a_few_things_to_note: + a_listing_on_bike_index_will_be_created: + all_you_have_to_do_is_html: + already_have_a_sophisticated_html: + bicycles_sold_before_you_activated_lights: + bike_index_cofounder: + how_to_lightspeed_retail: + i_started_bike_index_because: + learn_more_about: + lightspeed_retail: + once_you_have_a_bike_index_account_set_up: + privacy_policy_here: + registering_with_a_sticker_html: + security_link_text: + sign_your_shop_up: + the_bicycles_owner_will_receive_an_email: + the_first_step_is_to_create_an_account_html: + this_page_gives_instructions_html: + we_believe_that_bicycle_registration: + we_know_you_and_your_customers_html: + were_happy_to_answer_any_questions_html: + write_do_not_register: + privacy: + available_here: + changes: + changes_p1: + changes_p2_html: + cookies: + cookies_p1: + cookies_p2: + cookies_p3: + data_storage: + data_storage_p1: + disclosure: + disclosure_p1_html: + general_information: + general_information_p1: + general_information_p2: + general_information_p3: + information_gathering: + information_gathering_p1: + information_gathering_p2: + last_updated_html: + questions: + questions_p1_html: + see_terms_link_html: + terms_of_service: + protect_your_bike: + 211547_bikes_were_reported_stolen: + 9_in_10_incidents_of_bike_theft: + a_correctly_locked_bicycle: + according_to_fbi_statistics_html: + aim_to_have_the_hardest_bike_to_steal_on_: + cable_locks_should_never_be_used_as_primary: + cheaper_and_older_ulocks_can_often_be_broken: + checkout_out_bestbikelock_html: + correctly_locking_a_bike: + dont_rely_on_foot_traffic_to_keep_your_bi: + dont_rely_on_the_presence_of_cameras_to_k: + exploration: + jump_to_footnote_1: + make_sure_your_bike_isnt_one_of_them: + many_bicycles_are_stolen_from_garages_and: + over_a_million_bikes_are_stolen_yearly: + pink_power_ulocks: + protect_your_bike: + thanks_to_researchers_html: + the_frame_is_locked_to_an_immovable_objec: + tug_on_whatever_youre_about_to_lock_to_ma: + use_a_ulock_that_costs_at_least_40: + resources: + api_documentation: + bike_index_resources: + check_out_our_link_html: + did_you_know_every_bike_html: + get_bike_index_html: + how_not_to_buy_a_stolen_bike: + infographic_html: + learn_about_serial_numbers_here: + logos_and_design_assets: + map_of_bike_thefts: + the_manufacturers: + view_the_list_of_all_html: + we_have_an_open_api_check_out_html: + were_open_source_view_this_app_html: + serials: + a_serial_number_located_on_a_html: + a_serial_number_on_the_underside_html: + all_bikes: + all_have_unique_serial_numbers: + another_serial_number_beneath_html: + another_standard_serial_number: + bike_serial_numbers: + bike_with_bottom_circled: + certain_numbers_and_letters_html: + doberman_serial: + finding_a_bicycle_serial_number: + finding_bicycles_by_serial_number_html: + hopefully_you_can_find_the_serial_html: + in_this_picture_html: + jump_back_to_footnote: + look_serial: + most_bicycles_have_their_serial_number_en: + okay_fine_so_maybe_html: + our_search_form: + rad_power_serial: + rad_power_serials_html: + schwinn_serial: + searching_serials_on_bike_index: + serial_search_input: + some_bikes_have_multiple_html: + some_schwinn_bicycles_also: + standard_serial_number: + the_bottom_bracket_html: + we_do_close_serial_matching_html: + we_do_not_currently_do_partial_html: + we_split_bike_serials_up_by_html: + weve_done_a_few_things_to_make_it_more_li: + when_adding_a_bike_to_the_index: + show: + also_published: + updated: + terms_text: + about_our_terms_of_service: + available_here: + best_effort: + bike_index_reserves: + bike_index_shall_not_be_liable: + by_creating_account: + by_giving_bike_shops_html: + content_on_the_service: + if_bike_index_html: + last_updated_html: + may_be_terminated: + no_abuse: + no_spam: + no_waiver: + questions_html: + section_a_header: + section_b_header: + section_c_header: + section_d_header: + section_e_header: + support_for_bike_index_services: + terms_of_service: + third_party_vendors: + we_claim_no_ip: + we_dont_prescreen_content: + we_may_remove_content: + welcome_to_bike_index_html: + you_agree_not_to_resell: + you_are_responsible_for_content: + you_are_responsible_for_security: + you_may_not_use_for_illegal: + you_must_be_human: + you_must_notify: + you_must_provide_email: + you_shall_defend_bike_index: + your_use_of_the_service: + vendor_terms_text: + about_terms_of_service_for_vendors: + available_here: + because_bike_index_html: + becoming_a_vendor: + bike_index_vendor_service: + bike_index_vendor_tos: + binding_arbitration: + binding_arbitration_p1: + by_giving_bike_shop_employees_html: + customer_service: + customer_service_body: + disclosures_and_notices: + disclosures_and_notices_p1: + effects_of_deactivation: + effects_of_deactivation_p1: + effects_of_termination: + effects_of_termination_p1: + effects_of_termination_p2: + governing_law: + governing_law_p1: + illegal_use: + illegal_use_p1: + last_updated_html: + license_trademarks: + license_trademarks_p1: + license_trademarks_p2: + lightspeed_integration: + lightspeed_integration_p1: + lightspeed_integration_p2: + limitation_of_liability: + limitation_of_liability_p1: + limitation_of_liability_p2: + limitation_of_liability_p3: + limitation_of_liability_p4: + limitation_of_liability_p5: + limitation_of_liability_p6: + no_warranties: + no_warranties_p1: + no_warranties_p2: + no_warranties_p3: + no_warranties_p4: + our_role: + our_role_body: + ownership: + ownership_p1: + ownership_p2: + ownership_p3: + privacy_of_others: + privacy_of_others_p1_html: + privacy_of_others_p2_html: + privacy_of_others_p3_html: + privacy_of_others_p4_html: + prohibited_businesses: + prohibited_businesses_p1: + prohibited_businesses_p2: + references_to_relationship: + references_to_relationship_p1: + representation_and_warranties: + representation_and_warranties_p1: + restricted_use: + restricted_use_p1: + section_a: + section_c: + section_d: + security: + security_body_html: + term: + term_p1: + termination: + termination_and_other_legal_terms: + termination_p1: + terms_of_service_for_vendors: + tos_agreement: + vendor_registration: + vendor_registration_p1: + vendor_registration_p2: + verification: + verification_p1: + verification_p2: + verification_p3: + verification_p4: + we_can_deactivate_html: + we_provide_you_with_html: + welcome_to_bike_index_html: + with_the_following_brief_descriptions: + your_liability: + your_liability_p1: + your_liability_p2: + your_privacy: + your_privacy_body_html: + where: + bike_index_partners: + if_you_would_like_to_join_html: + international_partner_organizations: + show_location_on_map: + sign_up_your_organization: + signup_page: + us_partner_organizations: + website_for_organization: + javascript: + bikes_search: + abandoned: + absent: + color: + hidden: + impounded: + location: + registry: + registry_id: + search_external_registries: + matches_found_html: + no_matches_found_html: + searching_html: + search_serials_containing: + matches_found_html: + no_matches_found_html: + searching_html: + search_similar_serials: + matches_found_html: + no_matches_found_html: + searching_html: + serial: + serial_search: + stolen: + unknown: + unknown_brand: + payments: + enter_the_minimum_amount: + select_or_enter_amount: + landing_pages: + ambassadors_current: + after_a_couple_of_recoveries_i_got_hooked: + anytown_earth: + as_the_founder_of_bicycle_security_adviso: + become_a_bike_index_ambassador_and_help_s: + bike_index_allows_us_to_verify_details_ab: + bike_index_helped_me_recover_my_beloved_b: + bike_index_helps_people_recover_their_sto: + bike_index_provides_ease_of_use_and_secur: + current_ambassadors: + educating_kids_about_how_to_lock_their_bi: + gears: + i_believe_community_involvement_makes_a_d: + if_a_person_loses_their_bike_there_is_suc: + join_their_ranks: + steve_piercys_ambassadorship_is_sponsored_html: + the_heroes_of_bikedom: + whats_your_story: + why_bike_index: + your_name_here: + ambassadors_how_to: + 9_steps_for_getting_your_stolen_bike_back: + access_to_ambassadors_slack_channel_for_s: + anyone_can_help_bike_index_we_are_always_: + apply_to_be_an_ambassador_here: + apply_today: + be_a_bike_saver: + become_a_bike_index_ambassador: + become_an_ambassador: + bike_index_is_a_nonprofit_with_a_big_miss: + bike_index_launches_new_ambassador_progra: + check_out_our_media_resources: + connect_us_with_city_officials_law_enforc: + current_ambassadors: + follow_bike_index_on_twitter_facebook_and: + get_bike_shops_signed_up_for_bike_index_u: + give_you_shoutouts_on_social_media: + here: + how_it_works: + join_our_list_of_ambassadors_and_advocate: + monitoring_online_sales_platforms_like_cr: + pos_integrations: + relevant_articles: + share_bike_index_on_social_channels_inclu: + start_here: + to_become_a_bike_index_ambassador_fill_ou: + typical_ambassador_activities: + typical_ambassador_activities_include: + view_current_ambassadors: + want_to_help_fight_bike_theft_in_your_com: + we_provide_you_with_the_resources_to_make: + why_work_with_bike_index: + you_bring_the_ideas_make_the_connections_: + ascend: + ascend_knowledge_base_article: + automatic_bicycle_registration: + email_shops_security_html: + email_us_the_password_to_finish_setting_u: + follow_the_setup_instructions_html: + if_your_shop_uses_lightspeed_html: + link_your_ascend_retail_and_bike_index: + new_bike_shop_org: + once_youve_set_up_the_trek_ascenwd: + security_link_text: + sign_up_as_a_new_org_html: + then_if_a_customers_bike_goes_missing_html: + we_have_a_new_free_bicycle_registration: + bike_shop_packages: + additional: + bike_index_for_bike_shops: + choose_a_package_size: + compare_plans_and_features: + contact_us: + contact_us_for_trial: + forever: + free: + package_title: + questions_want_to_get_started: + sign_up: + sign_up_now: + simply_the_best_bike_registry: + try_for_free: + year: + campus_packages: + additional: + all_plans_come_with_a_30day_free_trial: + bike_index_for_colleges_universities: + choose_a_package_size: + clean_up_your_campus_messy_registry: + compare_plans_and_features: + contact_us: + contact_us_for_trial: + forever: + free: + package_title: + questions_want_to_get_started: + sign_up: + sign_up_now: + try_for_free: + year: + cities_packages: + additional: + all_plans_come_with_a_30day_free_trial: + bike_index_for_cities: + choose_a_package_size: + compare_plans_and_features: + contact_us: + contact_us_for_trial: + forever: + free: + give_your_constituents_the_bike_registry_: + package_title: + questions_want_to_get_started: + sign_up: + sign_up_now: + try_for_free: + year: + find_out_more: + all_accounts_come_with_bike_index: + custom_development_available: + find_out_more_html: + get_in_touch_link: + want_qr_stickers: + for_bike_shops: + 5_ways_to_grow_community_for_your_bike_sh: + automatic_registration_at_point_of_sale: + bike_index_for_bike_shops: + bike_shops_deck: + bikes_before_they: + build_goodwill_with_your_customers_with_a: + check_out: + connect_your_ascend_account_html: + connect_your_lightspeed_account: + curious_what_information_html: + do_right_by_your_customers: + dont_use_ascend_or_lightspeed_html: + driving_service_revenues_with_bicycle_reg: + embed_a_bike_index_registration_form: + for_free_we_provide_you_with_t: + here: + join_our_network_link_html: + learn_more: + network_of_shop_partners: + or: + our_official_lightspeed_integration_provi: + printed_materials: + register_bikes_for_your_customers: + related_articles: + security_link_text: + sign_up_for_a_free_bike_index_account_html: + sign_up_for_free: + trusted_by_bike_shops_everywhere: + use_ascend: + use_lightspeed_retail: + used_at_bike_shops_everywhere: + for_cities: + actually_get_people_registered_and_do_it_: + bike_index_for_cities: + bike_index_is_the_community_registration_: + bike_index_new_dashboard: + bike_index_organization_impounding: + bike_index_unveils_partnership_with_the_c: + bring_together_bike_shops_schools_municip: + check_out: + cities_deck: + embed_a_bike_index_registration_form: + engage_your_residents_and_recover_their_b: + features_amp_pricing: + mitigate_the_registration_mess: + no_more_index_cards_or_excel_sheets_give_: + our_community_is_your_community: + plug_your_city_in_nationally: + related_articles: + trusted_by_municipalities_everywhere: + used_by_municipalities_everywhere: + for_community_groups: + bike_index_for_community_groups: + bike_index_launches_new_ambassadors_progr: + bike_index_welcomes_stolen_bikes_nola: + embed_a_bike_index_registration_form: + gone_are_the_days_where_you_had_to_regist: + help_us_help_you: + here: + partners_made_in_heaven: + purchase_a_pack_of_advocacy_html: + registration_drive: + registrations_are_free_forever_join_bike_: + related_articles: + sign_up_for_free: + spread_the_bike_index_word_html: + the_most_widereaching_and_effective_tools: + trusted_by_community_groups_everywhere: + used_by_community_groups_everywhere: + we_provide_free_and_easy_access_to_our_re: + for_law_enforcement: + automated_tweets: + bend_reduces_bike_theft_by_60_percent: + bike_index_for_law_enforcement: + bike_index_organization_impounding: + calgary_doubles: + check_out: + embed_a_bike_index_registration_form: + here: + if_you_want_to_collaborate_html: + is_your_department_equipped_to_fight_bike: + law_enforcement_deck: + local_ambassadors: + our_extensive_archive_has_helped_officers: + put_a_lock_on_bike_theft: + recover_your_citizens_bikes: + related_articles: + sign_up_for_free: + trusted_by_law_enforcement_everywhere: + used_by_law_enforcement_everywhere: + with_over_600_partnerships_html: + with_over_registrations_and_almost: + you_have_the_authority_to_bring_html: + youre_the_first_one: + for_organizations_photo_list: + bike_shops: + cities: + community_groups: + for: + schools: + for_schools: + bike_index_for_universities: + bike_index_users_provide: + check_out: + embed_a_bike_index_registration_form: + features_amp_pricing: + how_it_works: + keep_campus_bikes_in_order: + make_bike_registration_better: + must_read: + protecting_bikes_on_campus_can_be: + read_about_our_html: + related_articles: + schools_deck: + six_best_features_for_schools: + trusted_by_top_universities: + universities_should_use_bike_index_as_the: + university_of_pittsburgh_partners_with_bi: + weve_designed_a_platform: + your_students_can_register_their_bikes: + packages_list: + forever: + free: + hide_features: + see_features: + sign_up_now: + try_for_free: + year: + layouts: + application: + blog: + donate: + help: + log_in: + logout: + register_a_new_bike: + search_bikes: + sign_up: + stolen_bike: + the_nonprofit_bike_registry: + user_settings: + view_org: + your_bikes: + application_bikehub: + accounts_powered_by_bike_index: + contact: + home: Home + login: + non_profit: + partnership: + register: + teamed_up: + email: + bike_index: + help_prevent_theft: + make_a_donation: + the_bike_index_team: + embed_layout: + error: + please_fix_the_following: + register_through_org: + payments_layout: + be_a_bike_saver: + support_bike_index_today: + until_every_bike_is_safe: + reg_embed: + its_free: + protect_your_bike_today: + register_on_bike_index: + register_your_bike: + revised_messages: + error: + please_fix_the_following: + locales: + en: + nb: + nl: + locks: + edit: + are_you_sure: Sei sicuro? + back_to_viewing_all_locks: + delete_this_lock: + edit_the_lock: + form: + add_the_lock: + additional_notes: + basic: + choose_manufacturer: + examples_of_serial_numbers_found_on_diffe: + has_combination: + has_key: + large_kryptonite_key: + lock_type: + other_lock_manufacturer: + pinhead_key: + pinhead_locking_skewer_key: + small_kryptonite_key: + update_the_lock: + lock_home: + add_a_new_lock: + any_lock_information_you_enter_on_bike_in: + if_you_want_you_can_save_serial_html: + lock_keys_often_have_serial_numbers_so_yo: + lock_type: + manufacturer: + save_information_about_a_lock: + save_information_about_your_bike_lock: + you_can_also_record_your_lock_html: + your_locks: + new: + save_information_about_one_of_your_locks: + manufacturers: + index: + give_us_a_heads_up_in_a_comment_below: + manufacturers_we_know_about: + name: Nome + oh_no_were_missing_a_manufacturer: + only_makes_components: + thats_not_actually_surprising: + meta_descriptions: + bikes_index: + bikes_new: + bikes_new_stolen: + documentation_api_v1: + documentation_api_v2: + feedbacks_index: + feedbacks_new: + feedbacks_vendor_signup: + info_about: + info_protect_your_bike: + info_resources: + info_serials: + info_spokecard: + info_stolen_bikes: + info_where: + landing_pages_for_law_enforcement: + landing_pages_for_schools: + landing_pages_show: + manufacturers_index: + my_accounts_show: + news_index: + sessions_create: + sessions_new: + stolen_index: + stolen_merging: + users_new: + welcome_index: + meta_titles: + about: + bikes_index: + bikes_new: + bikes_new_stolen: + documentation_api_v1: + feedbacks_index: + feedbacks_new: + feedbacks_vendor_signup: + info_about: + info_serials: + info_spokecard: + info_stolen_bikes: + info_where: + landing_pages_ambassadors_current: + landing_pages_ambassadors_how_to: + landing_pages_ascend: + landing_pages_bike_shop_packages: + landing_pages_campus_packages: + landing_pages_cities_packages: + landing_pages_for_bike_shops: + landing_pages_for_cities: + landing_pages_for_community_groups: + landing_pages_for_law_enforcement: + landing_pages_for_schools: + landing_pages_show: + links: + manufacturers_index: + news_index: + payments_create: + payments_new: + sessions_create: + sessions_new: + stolen_howworks: + stolen_index: + stolen_merging: + tech: + users_accept_terms: + users_accept_vendor_terms: + users_confirm: + users_new: + users_password_reset: + users_request_password_reset: + welcome_goodbye: + welcome_index: + money: + currencies: + en: + en-GB: + es: + nb: + nl: + my_accounts: + edit: + save_changes: + password: + better_password: + for_password_update: + new_password: + new_password_confirmation: + password_helper_text_html: + reset_password: + registration_organizations: + affiliation: + all_bikes_with_organization: + allow_organization_to_edit_bikes_html: + and_other_bikes_count: + bike: + mailing_address: + phone: + register_all_with: + registered_with: + registration_organization_information: + registration_organizations: + student_id: + update_your_address_on_html: + update_your_phone_on_html: + when_not_selected: + root: + absolutely_no_notifications: + add_additional_email: + add_new_phone_number: + additional_email: + address: + any_use_of_your_personal_information_html: + choose_country: + choose_language: + city: + confirmed_emails: + daily_hot_sheet_notifications_html: + give_us_permission_html: + have_multiple_emails: + make_primary_email: + no_notifications_explanation: + notifications_email: + personal_information_for_user: + preferred_language: + primary_email: + receive_the_bike_index_newsletter: + remove_email: + remove_number: + resend_confirmation: + state: + stolen_hot_sheets: + time_single_format: + time_single_format_small: + unconfirmed: + unconfirmed_emails: + verified: + why_you_should_text: + zipcode: + sharing: + choose_file: + create_page: + create_public_page: + example_url: + instagram_handle: + my_awesome_link: + no_instagram: + no_personal_site: + no_please_dont_create_me_a_page: + no_twitter: + page_text: + page_title: + personal_site_url: + preview_page: + profile_avatar: + sharing_and_personal_page_settings: + show_instagram: + show_personal_site: + show_personal_website: + show_twitter: + the_bike_index_can_create_a_page: + this_users_bikes: + title_for_link: + twitter_handle: + will_not_show_up: + your_username_is_the_url_for_your_sharing: + show: + add_a_bike: + add_a_lock: + add_a_photo: + add_it_now: + bike_sticker: + bikes: + combination: + edit: Modifica + edit_bike: + generally_connect_to_org: + ignore: + key_serial: + list_a_bike_on_bikefair: + location: + lock_type: + locks: + manufacturer: + mark_bike_stolen: + next: + primary_colors: + register_new_items: + registered: + serial: + sorry_your_bike_was_stolen: + tell_us_more_about_yourself: + thanks_for_adding_your_bike: + to_bike_index_thanks_for_signing_up: + update_your_profile: + updated: + user_bikes: + user_hidden: + want_to_sell_your_bikes: + welcome: + you_have_no_registered_bikes: + you_have_no_registered_locks: + news: + index: + bike_index_blog: + bike_index_blog_feed: + show: + also_published: + by: + organization_invitations: + not_available: + contact_us: + contact_us_if_you_think_were_wrong_html: + perhaps_that_link_has_already_been_used_t: + whoops_that_link_isnt_connected_to_a_bike: + organizations: + embed: + add_a_color: + additional_serial: + choose_color: + choose_country: + city: + currently_registering_a_nonstolen_bike: + department_city: + description_of_the_theft: + eg_if_we_tweet_about_or_someone_searches: + filing_a_police_report_is_important_html: + frame_color: + image_has_been_uploaded: + intersection_or_address: + manufacturer_name: + model_year: + optional_upload_a_photo: + other_manufacturer: + owners_mailing_address: + police_report_number: + receive_notifications_from_bike_index: + register: + registering_a_stolen_bike_click_here: + remove_color: + secondary_color: + select_other_if_manufacturer_isnt_listed: + state: + sticker_id_html: + student_id: + third_color: + this: + unknown_serial: + unknown_year: + unsure_or_unknown: + when_was_it_stolen: + where_was_it_stolen: + your_email_address: + your_phone_number: + zipcode: + embed_create_success: + bike_was_registered_to_you_html: + you_will_receive_an_email_confirmation: + your_bike_has_been_added_to_bike_index: + embed_extended: + add_a_color: + additional_serial: + any_extra_words: + choose_color: + choose_handlebar: + choose_material: + choose_photo: + city: + frame_color: + image_has_been_uploaded: + manufacturer_name: + model_year: + optional_additions: + org_affiliation: + other_defining_features: + other_manufacturer: + owners_email_address: + owners_mailing_address: + owners_phone: + primary_frame_material: + register_this: + remove_color: + secondary_color: + select_other_if_manufacturer_isnt_listed: + state: + sticker_id_html: + student_id: + third_color: + unknown_serial: + unknown_year: + unsure_or_unknown: + zipcode: + new: + bike_index_for_organizations: + new_form: + add_organization: + add_your_organization_to_bike_index: + bike_index_account: + confirm_your_email: + error: + fill_out_the_form_that_will_appear: + filling_out_this_form_will_create_a_new_org: + if_you_dont_want_that_to_be_the_case_html: + log_out: + new_organization: + organization_kind: + organization_name: + please_fix_the_following_errors: + sign_up_for_a_new_account_html: + you_are_already_a_member_of_org_html: + your_current_account_will_be_a_member_html: + organized: + ambassador_dashboards: + getting_started: + 10_tips_for_getting_started_in_your_town: + be_a_part_of_your_local_cycling_culture: + encourage_people_to_watch: + engage_your_local_city_and_cops: + find_and_talk_to_local_bloggers: + grow_your_network_via_bike: + have_twitter_connect: + post_and_rt_stolen_bikes: + promote_bike_index: + ride_your_bike_express_your: + seek_out_local_facebook_groups: + resources: + access_to_quick_communication: + ambassador_resources: + as_an_ambassador_you_have_access_to_a_num: + organizations_sign_up: + page_on_bike_index_html: + periodic_discount_codes: + qr_sticker_instructions: + qr_sticker_instructions_url: + qr_sticker_org_instructions: + qr_sticker_org_instructions_url: + some_additional_resources: + tips_for_talking_to_bike_shops: + tips_for_talking_to_bike_shops_url: + you_can_mark_stolen_bikes: + you_can_send_stolen_messages_html: + youre_a_moderator_on_discuss_html: + show: + actions: Actions + activities: + activities_for_registering_cyclists_html: + activity: + being_a_bike_index_ambassador: + completed: + completed_activities: + leaderboard: + name: Nome + suggested_activities: + this_page_contains_the_resources_you_need: + welcome_to_your_ambassador_homepage: + bikes: + incompletes: + bike: + email: + incomplete: + matching: + only_resend_with_permission: + org_incomplete_registrations_html: + re_send: + registration: + search: + search_emails: + sent: + through_org: + index: + connected_to_bike_html: + enter_url_of_the_bike_html: + is_currently_linked: + isnt_linked_to_a_bike: + search_org_bikes_html: + update: + list: + added: + bike: + color: + link: + manufacturer: + model: + num_bikes_registered_html: + sent_to: + sent_to_a_new_owner: + sticker: + recoveries: + description: + mfg_model_color_html: + org_recoveries_html: + owner: + recovered_at: + recovery: + render_chart: + show_only_organization_recoveries: + search: + address: + all: + avery: + bike: + color: + create_export_of_vehicles: + email_hidden: + impounded: + link: + manufacturer: + matching_bikes_html: + mfg_model_color_html: + model: + only_impounded_vehicles_html: + only_no_address_html: + only_no_sticker_html: + only_not_impounded_html: + only_stolen_html: + only_with_address_html: + only_with_owner_html: + only_with_stickers_html: + owner_name: + propulsion_type: + registered: + registered_bikes_html: + sent_to: + settings: + status: + status_cell: + sticker: + stickers: + stolen: + stolen_vehicles_html: + updated: + vehicle: + vehicle_type: + view_all_vehicles: + view_just_stolen_vehicles: + visible_columns: + bulk_imports: + error_type: + file: + line: + index: + added: + bikes: + creator: + errors: + exclude_empty_imports: + include_empty_imports: + kind: + new_import: + org_ascend_imports_html: + org_bulk_imports_html: + progress: + unable_to_process: + new: + choose_file: + correct_actual_image_url_html: + csv_file_with_bikes: + doing_an_import: + example_csv_with_all_options: + for_best_results: + if_only_some_of_your_bikes_html: + if_you_are_including_photo_url_html: + importing_stickers_html: + incorrect_image_on_webpage_html: + look_at_example_csv_and_html: + must_have_required_headers_html: + notes_on_successfully_importing: + optional_additions: + our_example_csv_here: + register_bikes_from_a_csv: + required_headers_are_html: + this_will_not_work: + upload_and_begin_import: + we_support_a_few_additional: + you_must_upload_a_dot_csv_html: + your_headers_must_match_html: + show: + ascend_import: + bikes: + bulk_import: + bulk_import_impounded: + color: + created: + creator: + errors: + file: + file_removed: + file_removed_explanation: + impounded_at: + impounded_id: + manufacturer: + model: + progress: + sent_to: + sent_to_a_new_owner: + exports: + index: + bikes_in_export: + created: + creator: + delete: + download: + export: + new_export: + org_exports_html: + progress: + stickers_assigned: + show: + avery_export: + bikes_exported: + bikes_registered_after: + bikes_registered_before: + by: + columns_in_csv: + created: + download_export: + exports: + format: + no_stickers_assigned: + not_assigned: + pending: + progress: + registration_types: + shared_alert_body: + show_bikes_in_export: + show_first_100_bikes_in_export: + specific_bikes: + stickers: + stickers_exported: + stickers_have_been_unassigned: + unable_to_export: + unassign_stickers: + view_avery_labels: + manage_impoundings: + edit: + impound_settings_html: + save: + manages: + location_fields: + address: + choose_country: + city: + location_name: + name: Nome + phone_number: + remove: + state: + street: + zipcode: + locations: + add_location: + bike_index_partner_map: + display_org_on_map_html: + location_settings_html: + save: + show: + abbreviation: + choose_file: + contact_to_update_html: + delete_organization: + i_would_like_to_terminate_my_account: + name: Nome + org_email_address_html: + org_settings: + organization_logo: + organization_type: + registration_email: + removal_confirmation: + select_email: + send_emails_directly: + square_image: + stolen_emails: + unclaimed_registration_definition: + update: + when_checked_go_direct: + why_no_direct_by_default: + parking_notifications: + index: + matches_visible: + parking_notifications: + show_details: + address: + bike: + by: + created: + internal_notes: + message: + notification_number: + resolved: + table: + address: + bike: + by: + created: + notification_number: + resolved: + stickers: + edit: + bike: + bike_id_or_url: + bike_is_unavailable: + claimed: + claimed_by: + edit_sticker: + previous_bike: + remove_bike_link: + sticker: + unclaimed: + update: + index: + added_html: + all: + bike: + claimed: + coded: + search: + search_bike_url_or_id: + search_sticker_id: + sticker: + stickers: + unclaimed: + users: + edit: + confirmation: + edit_membership_html: + email: Email + has_not_signed_up_html: + invited: + last_login: + last_login_ip: + remove_from_organization: + signed_up: + update: + index: + admin: + claimed: + created: + current_users: + emails_are_currently_sent_from_html: + find_by_name_or_email: + invite_more_users: + manage_users: + manually_invite_email: + matching_user: + member: + no_bike_edit: + permitted_domain_info_html: + remaining_invites_html: + role: + search: + sender: + to: + update_email: + user: + you_can_also: + you_have_invited_html: + membership_role_fields: + admin_access: + admin_of_organization: + member_access: + member_no_bikes: + member_no_bikes_access: + member_of_organization: + membership_type: + new: + 1_email_per_line: + automatic_passwordless: + email_youre_inviting: + invite_multiple_emails: + invite_user: + membership: + multiple_emails: + remaining_invites_html: + send_invitation: + signing_in_with_permitted_domain_html: + user: + you_have_a_permitted_domain: + you_have_invited_html: + organized_mailer: + custom_message: + subject: + finished_owned_registration: + subject: + finished_registration: + html: + a_correctly_locked_bike: + a_donation_will_prioritize_html: + before_locking_check: + bike_register_with_bike_index: + bike_register_with_bike_index_and_org: + bike_type_thieves_are_jerks: + cable_locks_should_never_be_used: + claim_the_bike_type: + confirm_this_bike_type: + correctly_locking_a_bike: + donating: + give_us_a_heads_up: + hopefully_you_find_the_bike_html: + hopefully_you_find_the_owner_html: + mark_recovered_link_html: + mark_your_bike_recovered: + org_added_a_bike_html: + org_sent_a_bike_html: + pink_power_ulocks_tm: + please_consider_donating_html: + prioritize_your_listing: + protect_your_bike_by_following_these_lock: + protecting_your_bike_here: + read_more_about_protecting_html: + recovered_bike_type: + secure_both_wheels_either_with_two_ulocks: + sign_up_on_bikeindexorg_to_claim_your_bik: + stolen_bike_type: + thanks_for_adding_this_bike_type_you_found: + use_a_ulock: + welcome_to_bike_index: + were_sorry_your_bike_type_was_stolen: + you_added_a_bike_type_on_bike_index: + youre_almost_done_registering: + subject: + finished_stolen_registration: + subject: + organization_invitation: + html: + hello: + join_org: + welcome_to_bike_index: + you_are_a_member: + subject: + partial_registration: + html: + click_below_to_complete_your_registration: + finish_it: + just_a_few_steps_away_html: + youre_almost_done: + subject: + payments: + form: + donation_header: + pay_bike_index: + success: + bike_index_team: + thank_you_for_supporting_bike_index: + we_received_your_payment_of: + xoxo: + your_donation_saved_bikes: + plan_features: + automatic_registration_through_pos: + campus_bike_management_suite: + contact_unfinished_registrants: + create_organization_account: + custom_form_fields: + customize_emails: + department_landing_page: + embed_registration_form: + export_custom_data: + graduated_bikes: + import_registrations_from_previous: + impound_bikes: + law_enforcement_list_html: + mailing_stickers: + organization_dashboard: + priority_programming_support: + qr_sticker: + qr_sticker_scanning_and_messaging: + school_landing_page: + search_bikes_organization: + social_media_and_email_marketing: + staff_accounts: + public_images: + edit: + editing_bike_html: + editing_image: + form: + cancel_update: + do_not_display: + error: + errors_prevented_photo_from_saving: + image_name: + no_one_will_be_able_to_see_this_image_exc: + save_image: + use_this_if_youd_like_to_attach_a_photo: + new: + add_a_public_image: + new_form: + drag_and_drop_html: + upload_photos: + public_image: + keep_image_private: + missing_image: + photo_of_receipt: + photo_of_serial: + photo_of_user_with_bike: + photo_stock: + photo_uncategorized: + processing: + show: + are_you_sure: Sei sicuro? + back_to_images: + bike_image: + destroy: Elimina + edit: Modifica + image_from: + looks_like_this_is_your_image: + recovery_displays: + recovery_display: + bike: + recovered_date: + translated_from_english: + registrations: + create: + follow_link_in_email: + we_sent_an_email_to: + well_do_our_best_to_help_you_recover_it: + youre_not_done: + embed: + bike_manufacturer: + choose_specific_organization_optional: + owner_email: + primary_frame_color: + register: + select_other_if_manufacturer_doesnt_show: + this_bike_is_either_missing_or_stolen: + your: + sessions: + magic_link: + enter_email_address: + get_sign_in_link: + if_not_click_button: + reenter_email: + sign_in: + sign_in_with_magic_link: + unable_to_auth: + you_should_be_signed_in_automatically: + your_email_address: + new: + dont_have_an_account: + email: + forgot_your_password: + get_on_bike_index: + keep_me_logged_in: + log_in: + no_bike_index_account: + or: + password: + sign_in_using_facebook: + sign_in_using_globalid: + sign_in_using_magic_link: + sign_in_using_strava: + sign_up: + shared: + bike_search_form: + anywhere: + doesnt_look_like_serial: + miles_of: + search_bike_descriptions: + search_for_serial_number: + search_owner_email: + submit: + within: + claim_message: + public_resource_reunited_value_html: + registered_your_bike_on_index: + sign_up: + supercharge_if_your_bike_stolen: + to_see_your_bike_sign_up_html: + content_skeleton: + about: + bicycle_serials: + bike_index_news: + bike_index_store: + design_and_developer_resources: + donate: + donate_today: + forum: + help: + how_to_get_your_stolen_bike_back: + make_a_difference: + other_pages: + protect_your_bike: + related: + sign_up_your_organization: + where: + donation_form: + 501c3_nonprofit: + bike_index_is_a_nonprofit_html: + next: + other_amount: + skip: + subheader_1: + subheader_2: + what_does_your_donation_do: + donation_modal: + donation_header: + edit_bike_skeleton: + edit: Modifica + owned_but_hasnt_been_claimed_html: + owned_with_permission_to_edit_html: + view_bike: + view_bike_version: + email_bike_box: + color: + color_may_be_incorrect: + found: + make: + serial: + stolen_at: + stolen_from: + errors: + error: + errors_prevented_this_from_being_saved: + faq: + absolutely: + add_a_stolen_bike_link: + add_details: + article_link: + bike_index_is_that_resource: + bike_serial_number: + bike_was_already_stolen: + bikes_are_public_and_searchable: + blog_link: + can_partner_with_bikeindex: + can_thieves_search: + can_you_tell_me_what_bike_by_serial: + comprehensive_public_database: + email_us_html: + everyone_can_register_bikes_for_free: + faqs: + follow_us_html: + free_to_transfer: + go_to_edit_page: + how_bikes_are_verified: + how_can_i_advertise: + how_can_i_stay_up_to_date: + how_does_this_prevent_bike_theft: + in_the_process_of_setting_up_advertising: + not_yet: + organization_signup_html: + organization_signup_link: + other_registries_html: + partner_link: + people_with_good_intentions: + possible_but_uncommon: + read_our_blog_html: + registration_html: + reveal_owner_email_html: + security_by_obscurity_link: + serial_numbers_public: + similar_serials: + the_faster_and_easier_it_is: + this_isnt_optimistic_speculation: + to_learn_more_html: + verification_questions: + visit_or_add_html: + we_care_about_your_privacy: + we_offer_bike_shops: + we_recommend_searching: + we_successfully_recover: + weve_recovered_bikes: + what_about_my_privacy: + what_if_i_sell_my_bike: + while_serial_numbers: + who_can_register_bikes: + why_public: + your_personal_information_is_never_viewed: + footer: + about_bike_index: + bike_index_news: + bike_index_partner_organizations: + bike_index_resources: + contact_us: + help: + list_of_manufacturers: + privacy_policy: + register_a_bike: + sign_up_a_shop_or_organization: + terms_and_conditions: + vendor_terms: + footer_revised: + about: + ambassadors: + api_documentation: + bike_index: + bike_manufacturer_list: + bike_shops: + blog: + change_preferred_language: + cities: + community_groups: + copyright_html: + design_logos: + dev_resources: + donate: + faq: + help: + how_to_get_your_stolen_bike_back: + language: + law_enforcement: + press_inquiries: + privacy_policy: + protect_your_bike: + resources: + schools_and_universities: + security: + stolen_bike_map: + stolen_bike_recoveries: + store: + support_us: + terms_and_conditions: + vendor_terms: + where_we_are: + who_we_serve: + form_well_footer_save: + save_changes: + header_nav: + log_in: + log_out: + preferences: + sign_up: + superuser_home: + you: + your_bikes: + your_preferences: + law_enforcement_donation_modal: + bikeindex_is_a_nonprofit: + contact_bike_owners: + email_for_access_html: + greeting: + law_enforcement_features: + multiple_serial_search_pane: + thank_you: + thanks_for_using_bike_index: + organized_menu_items: + add_a_bike: + ascend_imports: + bulk_imports: + custom_emails: + discuss: + exports: + getting_started: + graduated_notifications: + impounded_bikes: + impounded_claims: + incomplete_registrations: + lightspeed_integration_panel: + manage_impounding: + manage_users: + model_audits: + multi_serial_search: + org_bikes: + org_dashboard: + org_locations: + org_profile: + parking_notification_unregistered: + parking_notifications: + recoveries: + registration_stickers: + resources: + stolen_hot_sheet: + stolen_hot_sheet_configuration: + stolen_message: + super_admin_view: + organized_skeleton: + additional_features_html: + admin_panel: + how_integration_works: + integrate_bike_index_with_ascend: + integrate_bike_index_with_lightspeed: + link_to_register_html: + other_point_of_sale_system: + read_a_full_explanation_html: + register_bikes_with_link_html: + streamlined_bike_shop_registration_page: + subscription_expired_html: + use_ascend: + use_lightspeed_retail_pos: + viewing_our_streamlined_page: + period_select: + all: + custom: + day: + from: + hour: + next: + past: + seven_days: + thirty_days: + to: + update: + year: + user_general_alert: + add_location_theft_bike_title_html: + add_photo_theft_bike_title_html: + confirm_your_phone_number: + location_critical_html: + missing_stolen_photo_title: + photo_critical_html: + stolen_missing_location_title: + verification_code: + verify_number: + without_location_all_is_lost: + without_photo_all_is_lost: + stolen: + index: + ambassador: + bike_index: + bike_index_will_broadcast: + check_out_your_local_flea_market: + donation: + error: + file_a_police_report: + if_you_are_here_your_bike_was_probably_stolen: + keep_an_eye_on_craigslist: + list_recent_stolen_bikes_html: + look_for_local_stolen_bike_groups_on_face: + make_sure_your_bike_is_registered_html: + other_recovery_tools: + please_fix_the_following: + please_login_to_make_report_html: + register_it: + report_a_bicycle_chop_shop: + report_bike_theft_issues: + report_someone_selling_a_stolen_bike: + reporting_your_own_bike_stolen_html: + send_alert: + sign_in: + stolen_widget: + tell_everyone_you_know: + we_wish_you_the_best_of_luck_html: + what_happens_next: + what_to_do_if_your_bike_is_stolen: + where_is_this_happening: + your_email_address: + your_local_police_department_will_do_what: + theft_alert_plans: + theft_alert_plan: + days: + user_embeds: + show: + bike: + my_indexed_bikes: + no_photo: + users: + accept_terms: + i_agree_to_tos_html: + submit: Invia + accept_vendor_terms: + i_agree_to_tos_html: + submit: Invia + confirm_error_404: + we_couldnt_find_a_user_with_that_id: + woops: + confirm_error_bad_token: + could_not_find_matching_ticket: + woops: + new: + agree_bikeindex_bikehub_toc_html: + agree_bikeindex_toc_html: + already_have_a_bike_index_account: + already_have_an_account: + better_password: + get_bike_indexs_newsletter: + get_on_bike_index: + log_in: + password_helper_text_html: + sign_up: + sign_up_using_facebook: + sign_up_using_globalid: + sign_up_using_strava: + terms_and_conditions: + please_confirm_email: + did_not_get_an_email: + please_verify_your_email: + resend_confirmation_email: + thanks_for_signing_up_for_bike_index: + we_sent_an_email: + we_sent_an_email_to_user_email_html: + request_password_reset_form: + enter_the_email_address: + reset_your_password: + your_email_address: + send_password_reset_email: + follow_the_link_back: + password_reset: + weve_sent_an_email: + show: + bikes: + stolen: + this_user_has_no_bikes_yet: + this_users_bikes: + unsubscribe: + if_not_click_button: + unsubscribe: + you_should_be_unsubscribed_automatically: + update_password_form_with_reset_token: + and_try_not_to_forget_it: + better_password: + choose_a_new_password: + password: Password + password_confirmation: + password_helper_text_html: + update_password: + update_your_password: + welcome: + choose_registration: + add_a_bike_through: + add_a_stolen_bike: + add_abandoned_bike_you_found: + add_your_own_bike: + register_bike: + goodbye: + come_back_soon: + youve_been_logged_out: + index: + alert_the_community: + bike_index_statistics: + bikes_registered_this_week: + but_how_does_it_work: + hero: + how_it_works: + identifying_your_bike: + if_your_bike_goes_missing: + partner_organizations: + read_more_recovery_stories: + recent_recovery_stories: + recover_your_bike_for_free: + register_now: + register_your_bike: + stolen_bikes_recovered: + stolen_bikes_registered: + the_community_responds: + total_bikes_registered: + total_recovery_value: + used_by: + value_of_bikes_recovered: + you_get_your_bike_back: + recovery_stories: + recovery_stories: + update_browser: + go_here_to_learn_more: + oh_no: + unsupported_browser: From 9d5cb50910a4f3b7cb75ff2ea3c65a8c6c77c5f4 Mon Sep 17 00:00:00 2001 From: Seth Herr Date: Wed, 29 May 2024 08:07:32 -0700 Subject: [PATCH 13/13] bin/rake translation:sync_and_purge --- config/locales/.translation_io | 2 +- config/locales/translation.it.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/.translation_io b/config/locales/.translation_io index 4e44c48f88..fd4612f509 100644 --- a/config/locales/.translation_io +++ b/config/locales/.translation_io @@ -1,2 +1,2 @@ --- -timestamp: 1716995126 +timestamp: 1716995193 diff --git a/config/locales/translation.it.yml b/config/locales/translation.it.yml index 09be030478..3a06433b1d 100644 --- a/config/locales/translation.it.yml +++ b/config/locales/translation.it.yml @@ -3638,7 +3638,7 @@ it: you_can_send_stolen_messages_html: youre_a_moderator_on_discuss_html: show: - actions: Actions + actions: Azioni activities: activities_for_registering_cyclists_html: activity: