﻿// ***************************************************************************
// *
// * Copyright (C) 2016 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ur_IN.xml
// *
// ***************************************************************************
ur_IN{
    NumberElements{
        default{"arabext"}
    }
    Version{"2.1.22.17"}
    calendar{
        generic{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE، d MMMM، y G",
                "d MMMM، y G",
                "d MMM، y G",
                "d/M/yy GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
        }
    }
    fields{
        day-narrow{
            relativeTime{
                past{
                    one{"{0} دن قبل"}
                    other{"{0} دن قبل"}
                }
            }
        }
        day-short{
            relativeTime{
                future{
                    one{"{0} دنوں میں"}
                    other{"{0} دنوں میں"}
                }
            }
        }
        era{
            dn{"دور"}
        }
        fri{
            relative{
                "-1"{"پچھلے جمعہ"}
                "0"{"اس جمعہ"}
                "1"{"اگلے جمعہ"}
            }
        }
        hour-narrow{
            relativeTime{
                past{
                    one{"{0} گھنٹہ قبل"}
                    other{"{0} گھنٹے قبل"}
                }
            }
        }
        hour-short{
            relativeTime{
                past{
                    one{"{0} گھنٹے قبل"}
                    other{"{0} گھنٹے قبل"}
                }
            }
        }
        minute{
            relativeTime{
                past{
                    one{"{0} منٹ قبل"}
                    other{"{0} منٹ قبل"}
                }
            }
        }
        minute-narrow{
            relativeTime{
                past{
                    one{"{0} منٹ قبل"}
                    other{"{0} منٹ قبل"}
                }
            }
        }
        minute-short{
            relativeTime{
                past{
                    one{"{0} منٹ قبل"}
                    other{"{0} منٹ قبل"}
                }
            }
        }
        mon{
            relative{
                "-1"{"پچھلے سوموار"}
                "0"{"اس سوموار"}
                "1"{"اگلے سوموار"}
            }
        }
        month{
            relative{
                "-1"{"گزشتہ ماہ"}
                "0"{"اس ماہ"}
                "1"{"اگلے ماہ"}
            }
            relativeTime{
                future{
                    one{"{0} ماہ میں"}
                    other{"{0} ماہ میں"}
                }
                past{
                    one{"{0} ماہ قبل"}
                    other{"{0} ماہ قبل"}
                }
            }
        }
        month-narrow{
            dn{"مہینہ"}
            relativeTime{
                past{
                    one{"{0} ماہ قبل"}
                    other{"{0} ماہ قبل"}
                }
            }
        }
        month-short{
            dn{"مہینہ"}
        }
        second{
            relativeTime{
                past{
                    one{"{0} سیکنڈ قبل"}
                    other{"{0} سیکنڈ قبل"}
                }
            }
        }
        second-narrow{
            relativeTime{
                past{
                    one{"{0} سیکنڈ قبل"}
                    other{"{0} سیکنڈ قبل"}
                }
            }
        }
        second-short{
            relativeTime{
                past{
                    one{"{0} سیکنڈ قبل"}
                    other{"{0} سیکنڈ قبل"}
                }
            }
        }
        thu{
            relative{
                "-1"{"پچھلے جمعرات"}
                "0"{"اس جمعرات"}
                "1"{"اگلے جمعرات"}
            }
        }
        tue{
            relative{
                "-1"{"پچھلے منگل"}
                "0"{"اس منگل"}
                "1"{"اگلے منگل"}
            }
        }
        wed{
            relative{
                "-1"{"پچھلے بدھ"}
                "0"{"اس بدھ"}
                "1"{"اگلے بدھ"}
            }
        }
        week{
            relative{
                "-1"{"گزشتہ ہفتہ"}
                "0"{"اس ہفتہ"}
                "1"{"اگلے ہفتہ"}
            }
            relativeTime{
                future{
                    one{"{0} ہفتہ میں"}
                    other{"{0} ہفتوں میں"}
                }
                past{
                    one{"{0} ہفتہ قبل"}
                    other{"{0} ہفتے قبل"}
                }
            }
        }
        week-narrow{
            relativeTime{
                past{
                    one{"{0} ہفتہ قبل"}
                    other{"{0} ہفتے قبل"}
                }
            }
        }
        week-short{
            relativeTime{
                past{
                    one{"{0} ہفتے قبل"}
                    other{"{0} ہفتے قبل"}
                }
            }
        }
        year{
            relativeTime{
                future{
                    one{"{0} سال میں"}
                    other{"{0} سالوں میں"}
                }
            }
        }
        year-short{
            relativeTime{
                future{
                    one{"{0} سال میں"}
                    other{"{0} سالوں میں"}
                }
                past{
                    one{"{0} سال پہلے"}
                    other{"{0} سالوں پہلے"}
                }
            }
        }
    }
    listPattern{
        unit{
            2{"{1}، {0}"}
            end{"{1}، {0}"}
        }
        unit-narrow{
            2{"{1} {0}"}
            end{"{1} {0}"}
            middle{"{1} {0}"}
            start{"{1} {0}"}
        }
        unit-short{
            2{"{1}، {0}"}
            end{"{1}، {0}"}
        }
    }
}
