﻿// ***************************************************************************
// *
// * Copyright (C) 2015 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.19.14"}
    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"{"پچھلے جمعہ"}
            }
        }
        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"{"پچھلے سوموار"}
            }
        }
        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"{"پچھلے جمعرات"}
            }
        }
        tue{
            relative{
                "-1"{"پچھلے منگل"}
            }
        }
        wed{
            relative{
                "-1"{"پچھلے بدھ"}
            }
        }
        week{
            relative{
                "-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}"}
        }
    }
}
