function localeComparator(model1, model2) {
    var a1 = model1.get(this.sortField),
        a2 = model2.get(this.sortField);

    if (a1 !== undefined && a1.localeCompare) {
        var result = a1.localeCompare(a2) * this.sortDir;
        if (result || !this.secondarySortField) {
            return result;
        }
        a1 = model1.get(this.secondarySortField);
        a2 = model2.get(this.secondarySortField);
        return a1.localeCompare(a2) * this.sortDir;
    }

    return a1 > a2 ? this.sortDir : (a1 < a2 ? -this.sortDir : 0);
}
function localeComparator(model1, model2) {
    var a1 = model1.get(this.sortField),
        a2 = model2.get(this.sortField);

    if (a1 !== undefined && a1.localeCompare) {
        var result = a1.localeCompare(a2) * this.sortDir;
        if (result || !this.secondarySortField) {
            return result;
        }
        a1 = model1.get(this.secondarySortField);
        a2 = model2.get(this.secondarySortField);
        return a1.localeCompare(a2) * this.sortDir;
    }

    return a1 > a2 ? this.sortDir : (a1 < a2 ? -this.sortDir : 0);
}
function localeComparator ( model1 , model2 ) { var a1 = model1 . get ( this . sortField ) , a2 = model2 . get ( this . sortField ) ; if ( a1 !== undefined && a1 . localeCompare ) { var result = a1 . localeCompare ( a2 ) * this . sortDir ; if ( result || ! this . secondarySortField ) { return result ; } a1 = model1 . get ( this . secondarySortField ) ; a2 = model2 . get ( this . secondarySortField ) ; return a1 . localeCompare ( a2 ) * this . sortDir ; } return a1 > a2 ? this . sortDir : ( a1 < a2 ? - this . sortDir : 0 ) ; }
This comparator can be used by collections that wish to support locale-based
sorting.  The locale specifies how upper and lower case are compared.
This comparator can be used by collections that wish to support locale - based sorting . The locale specifies how upper and lower case are compared .