﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/lkt.xml
// *
// ***************************************************************************
lkt{
    Version{"2.1.6.69"}
    units{
        duration{
            day{
                other{"{0}-čháŋ"}
            }
            hour{
                other{"Owápȟe {0}"}
            }
            month{
                other{"Wíyawapi {0}"}
            }
            second{
                other{"Okpí {0}"}
            }
            week{
                other{"okó {0}"}
            }
            year{
                other{"ómakȟa {0}"}
            }
        }
        length{
            foot{
                other{"siíyutȟapi {0}"}
            }
            inch{
                other{"oíyutȟe čísčila {0}"}
            }
            mile{
                other{"makhíyutȟapi {0}"}
            }
            yard{
                other{"čhaéglepi {0}"}
            }
        }
        mass{
            pound{
                other{"tkeíyutȟapi {0}"}
            }
        }
    }
    unitsNarrow{
        duration{
            day{
                other{"{0}-čháŋ"}
            }
            hour{
                other{"Owápȟe {0}"}
            }
            month{
                other{"Wí {0}"}
            }
            second{
                other{"Okpí {0}"}
            }
            week{
                other{"okó {0}"}
            }
            year{
                other{"ómakȟa {0}"}
            }
        }
        length{
            foot{
                other{"siíyutȟapi {0}"}
            }
            inch{
                other{"{0}″"}
            }
            mile{
                other{"{0} makh"}
            }
            yard{
                other{"čhaéglepi {0}"}
            }
        }
        mass{
            pound{
                other{"{0}#"}
            }
        }
        temperature{
            celsius{
                other{"{0}°C"}
            }
            fahrenheit{
                other{"{0}°"}
            }
        }
    }
    unitsShort{
        duration{
            day{
                other{"{0}-čháŋ"}
            }
            hour{
                other{"Owápȟe {0}"}
            }
            month{
                other{"Wíyawapi {0}"}
            }
            second{
                other{"Okpí {0}"}
            }
            week{
                other{"okó {0}"}
            }
            year{
                other{"ómakȟa {0}"}
            }
        }
        length{
            foot{
                other{"siíyutȟapi {0}"}
            }
            inch{
                other{"oíyutȟe čísčila {0}"}
            }
            mile{
                other{"makhíyutȟapi {0}"}
            }
            yard{
                other{"čhaéglepi {0}"}
            }
        }
        mass{
            pound{
                other{"tkeíyutȟapi {0}"}
            }
        }
    }
}
