﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
yo_BJ{
    Version{"38"}
    units{
        concentr{
            permille{
                other{"{0} ìdákan nínú ɛgbɛ̀rún"}
            }
        }
        digital{
            bit{
                dnam{"àwɔ́n bíìtì"}
                other{"{0} àwɔ́n bíìtì"}
            }
            byte{
                dnam{"àwɔ́n báìtì"}
                other{"{0} àwɔ́n báìtì"}
            }
            gigabit{
                dnam{"àwɔn gígábíìtì"}
                other{"{0} àwɔn gígábíìtì"}
            }
            gigabyte{
                dnam{"àwɔn gígábáìtì"}
                other{"{0} àwɔn gígábáìtì"}
            }
            kilobit{
                dnam{"àwɔn kílóbíìtì"}
                other{"{0} àwɔ́n kílóbíìtì"}
            }
            kilobyte{
                dnam{"àwɔn kílóbáìtì"}
                other{"{0} àwɔn kílóbáìtì"}
            }
            megabit{
                dnam{"àwɔn mégábíìtì"}
                other{"{0} àwɔn mégábíìtì"}
            }
            megabyte{
                dnam{"àwɔn mégábáìtì"}
                other{"{0} àwɔn mégábáìtì"}
            }
            petabyte{
                dnam{"àwɔn pɛ́tábáìtì"}
                other{"{0} àwɔn pɛ́tábáìtì"}
            }
            terabit{
                dnam{"àwɔn tɛ́rábíìtì"}
                other{"{0} àwɔn tɛ́rábíìtì"}
            }
            terabyte{
                dnam{"àwɔn tɛ́rábáìtì"}
                other{"{0} àwɔn tɛ́rábáìtì"}
            }
        }
        duration{
            century{
                dnam{"ɔ̀rúndún"}
                other{"ɔ̀rúndún {0}"}
            }
            day{
                dnam{"ɔjɔ́"}
                other{"ɔj {0}"}
                per{"{0}/ɔj"}
            }
            decade{
                dnam{"ɛ̀wádùn"}
                other{"ɛ̀wádùn {0}"}
            }
            minute{
                dnam{"ìsh"}
                other{"{0} ìsh"}
                per{"{0}/ìsh"}
            }
            month{
                dnam{"oshù"}
                other{"{0} oshù"}
                per{"{0}/oshù"}
            }
            second{
                dnam{"ìsh àáy"}
                other{"{0}ìsh àáy"}
                per{"{0}/ìsh àáy"}
            }
            week{
                dnam{"ɔsh"}
                other{"{0} ɔsh"}
                per{"{0}/ɔsh"}
            }
            year{
                dnam{"ɔ̀dún"}
                other{"{0} ɔd"}
                per{"{0} ɔd"}
            }
        }
        graphics{
            dot{
                dnam{"dɔ́ɔ̀tì"}
                other{"{0} dɔ́ɔ̀tì"}
            }
        }
        length{
            earth-radius{
                dnam{"ìdinwɔ̀n ayé"}
                other{"{0} ìdinwɔ̀n ayé"}
            }
        }
        light{
            candela{
                dnam{"kandɛ́là"}
                other{"{0} kandɛ́là"}
            }
            lumen{
                dnam{"lumɛ́ɛ̀nì"}
                other{"{0} lumɛ́ɛ̀nì"}
            }
        }
        volume{
            dessert-spoon{
                dnam{"àmì shíbí oúnjɛ́ kékeré"}
                other{"{0} àmì shíbí oúnjɛ́ kékeré"}
            }
            dessert-spoon-imperial{
                dnam{"shíbí oúnjɛ kékeré"}
                other{"{0} àmì oúnjɛ kékeré"}
            }
            drop{
                dnam{"dírɔ́pù"}
                other{"{0} dírɔ́pù"}
            }
            pinch{
                dnam{"píńshì"}
                other{"{0} píńshì"}
            }
        }
    }
    unitsNarrow{
        duration{
            day{
                dnam{"ɔjɔ́"}
                other{"ɔj {0}"}
            }
            minute{
                dnam{"ìsh"}
                other{"{0}/ìsh"}
            }
            month{
                dnam{"oshù"}
                other{"{0} oshù"}
            }
            second{
                dnam{"ìsh àáy"}
                other{"{0} ìsh àáy"}
            }
            week{
                dnam{"ɔshɛ́"}
                other{"{0} ɔsh"}
            }
            year{
                dnam{"ɔd"}
                other{"{0} ɔd"}
            }
        }
    }
    unitsShort{
        concentr{
            permille{
                dnam{"ìdákan nínú ɛgbɛ̀rún"}
            }
        }
        digital{
            megabit{
                dnam{"ɛ́mbíìtì"}
                other{"{0} ɛ́mbiì"}
            }
            megabyte{
                dnam{"ɛ́mbáìtì"}
            }
        }
        duration{
            day{
                dnam{"ɔjɔ́"}
                other{"{0} ɔj"}
                per{"{0}/ɔj"}
            }
            decade{
                dnam{"ɛ̀wádùn"}
                other{"ɛ̀wádún {0}"}
            }
            minute{
                dnam{"ìsh"}
                other{"{0} ìsh"}
                per{"{0}/ìsh"}
            }
            month{
                dnam{"oshù"}
                other{"{0} oshù"}
                per{"{0}/oshù"}
            }
            second{
                dnam{"ìsh àáy"}
                other{"{0} ìsh àáy"}
                per{"{0} ìsh àáy"}
            }
            week{
                dnam{"ɔsh"}
                other{"{0} ɔsh"}
                per{"{0}/ɔshɛ̀"}
            }
            year{
                dnam{"ɔd"}
                other{"{0} ɔd"}
                per{"{0}/ɔd"}
            }
        }
        graphics{
            dot{
                dnam{"dɔ́ɔ̀tì"}
                other{"{0} dɔ́ɔ̀tì"}
            }
        }
        length{
            earth-radius{
                dnam{"àmì ìdínwɔ̀n ayé"}
                other{"{0} àmì ìdínwɔ̀n ayé"}
            }
        }
        light{
            lumen{
                dnam{"àmì lumɛ́ɛ̀nì"}
                other{"{0} àmi lumɛ́ɛ̀nì"}
            }
        }
        volume{
            dessert-spoon{
                dnam{"shíbí oúnjɛ́ kékeré"}
                other{"{0} shíbí oúnjɛ́ kékeré"}
            }
            dessert-spoon-imperial{
                dnam{"àmì oúnjɛ kékeré"}
                other{"{0} àmì oúnjɛ kékeré"}
            }
            drop{
                dnam{"dírɔ́pù"}
                other{"{0} dírɔ́pù"}
            }
            pinch{
                dnam{"píńshì"}
                other{"{0} píńshì"}
            }
        }
    }
}
