|
|
| Line 7: |
Line 7: |
| local references_module = "Module:references" | | local references_module = "Module:references" |
| local string_utilities_module = "Module:string utilities" | | local string_utilities_module = "Module:string utilities" |
| local syllables_module = "Module:syllables"
| |
| local utilities_module = "Module:utilities" | | local utilities_module = "Module:utilities" |
|
| |
|
| local m_data = mw.loadData("Module:IPA/data") | | local m_data = mw.loadData("Module:IPA/data") |
| local m_str_utils = require(string_utilities_module) | | local m_str_utils = require(string_utilities_module) |
| local m_syllables -- [[Module:syllables]]; loaded below if needed
| |
| local m_symbols = mw.loadData("Module:IPA/data/symbols") | | local m_symbols = mw.loadData("Module:IPA/data/symbols") |
|
| |
|
| Line 327: |
Line 325: |
|
| |
|
| if lang then | | if lang then |
| -- Add syllable count if the language's diphthongs are listed in [[Module:syllables]].
| |
| -- Don't do this if the term has spaces, a liaison mark (‿) or isn't in mainspace.
| |
| if not no_count and namespace == 0 then
| |
| m_syllables = m_syllables or require(syllables_module)
| |
| local langcode = lang:getCode()
| |
| if m_data.langs_to_generate_syllable_count_categories[langcode] then
| |
| local phonemic, phonetic, use_it = split_phonemic_phonetic(item.pron)
| |
| local repr = determine_repr(phonemic)
| |
| if not phonetic then -- not a '/.../ [...]' combined pronunciation
| |
| if m_data.langs_to_use_phonetic_notation[langcode] then
| |
| use_it = repr == "phonetic" and phonemic or nil
| |
| else
| |
| use_it = repr == "phonemic" and phonemic or nil
| |
| end
| |
| elseif repr == "phonetic" then
| |
| use_it = phonetic
| |
| elseif repr == "phonemic" then
| |
| use_it = phonemic
| |
| end
| |
| -- Note: two uses of find with plain patterns is much faster than umatch with [ ‿].
| |
| if use_it and not (find(use_it, " ") or find(use_it, "‿")) then
| |
| local syllable_count = m_syllables.getVowels(use_it, lang)
| |
| if syllable_count then
| |
| insert(categories, lang:getCanonicalName() .. " " .. syllable_count ..
| |
| "-syllable words")
| |
| end
| |
| end
| |
| end
| |
| end
| |
|
| |
| -- The nature of hasInvalidSeparators() is such that we don't have to split a combined '/.../ [...]' spec | | -- The nature of hasInvalidSeparators() is such that we don't have to split a combined '/.../ [...]' spec |
| -- into its parts in order to process. | | -- into its parts in order to process. |