ソースを参照

Language detection defaults to nil (#3666)

* Default to nil for statuses.language

* Language detection defaults to nil instead of instance UI default
master
Matt Jankowski 7年前
committed by Eugen Rochko
コミット
022008a2a6
5個のファイルの変更21行の追加16行の削除
  1. +2
    -2
      app/lib/language_detector.rb
  2. +1
    -1
      app/models/status.rb
  3. +5
    -0
      db/migrate/20170609145826_remove_default_language_from_statuses.rb
  4. +2
    -2
      db/schema.rb
  5. +11
    -11
      spec/lib/language_detector_spec.rb

+ 2
- 2
app/lib/language_detector.rb ファイルの表示

@@ -10,7 +10,7 @@ class LanguageDetector
end

def to_iso_s
detected_language_code || default_locale.to_sym
detected_language_code || default_locale
end

def prepared_text
@@ -43,6 +43,6 @@ class LanguageDetector
end

def default_locale
account&.user_locale || I18n.default_locale
account&.user_locale&.to_sym || nil
end
end

+ 1
- 1
app/models/status.rb ファイルの表示

@@ -20,7 +20,7 @@
# reply :boolean default(FALSE)
# favourites_count :integer default(0), not null
# reblogs_count :integer default(0), not null
# language :string default("en"), not null
# language :string
# conversation_id :integer
#



+ 5
- 0
db/migrate/20170609145826_remove_default_language_from_statuses.rb ファイルの表示

@@ -0,0 +1,5 @@
class RemoveDefaultLanguageFromStatuses < ActiveRecord::Migration[5.1]
def change
change_column :statuses, :language, :string, default: nil, null: true
end
end

+ 2
- 2
db/schema.rb ファイルの表示

@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.

ActiveRecord::Schema.define(version: 20170606113804) do
ActiveRecord::Schema.define(version: 20170609145826) do

# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -277,7 +277,7 @@ ActiveRecord::Schema.define(version: 20170606113804) do
t.boolean "reply", default: false
t.integer "favourites_count", default: 0, null: false
t.integer "reblogs_count", default: 0, null: false
t.string "language", default: "en", null: false
t.string "language"
t.bigint "conversation_id"
t.index ["account_id"], name: "index_statuses_on_account_id"
t.index ["conversation_id"], name: "index_statuses_on_conversation_id"


+ 11
- 11
spec/lib/language_detector_spec.rb ファイルの表示

@@ -43,7 +43,7 @@ describe LanguageDetector do
describe 'to_iso_s' do
it 'detects english language for basic strings' do
strings = [
"Hello and welcome to mastodon",
"Hello and welcome to mastodon how are you today?",
"I'd rather not!",
"a lot of people just want to feel righteous all the time and that's all that matters",
]
@@ -62,20 +62,20 @@ describe LanguageDetector do
end

describe 'when language can\'t be detected' do
it 'uses default locale when sent an empty document' do
it 'uses nil when sent an empty document' do
result = described_class.new('').to_iso_s
expect(result).to eq :en
expect(result).to eq nil
end

describe 'because of a URL' do
it 'uses default locale when sent just a URL' do
it 'uses nil when sent just a URL' do
string = 'http://example.com/media/2kFTgOJLXhQf0g2nKB4'
cld_result = CLD3::NNetLanguageIdentifier.new(0, 2048).find_language(string)
expect(cld_result).not_to eq :en

result = described_class.new(string).to_iso_s

expect(result).to eq :en
expect(result).to eq nil
end
end

@@ -87,20 +87,20 @@ describe LanguageDetector do
expect(result).to eq :fr
end

it 'uses default locale when account is present but has no locale' do
it 'uses nil when account is present but has no locale' do
account = double(user_locale: nil)
result = described_class.new('', account).to_iso_s

expect(result).to eq :en
expect(result).to eq nil
end
end

describe 'with an `en` default locale' do
it 'uses the default locale' do
it 'uses nil for undetectable string' do
string = ''
result = described_class.new(string).to_iso_s

expect(result).to eq :en
expect(result).to eq nil
end
end

@@ -112,11 +112,11 @@ describe LanguageDetector do
I18n.default_locale = before
end

it 'uses the default locale' do
it 'uses nil for undetectable string' do
string = ''
result = described_class.new(string).to_iso_s

expect(result).to eq :ja
expect(result).to eq nil
end
end
end


読み込み中…
キャンセル
保存