As far as I understand your problem, you have two layouts: old and new. Now you want to switch to the new layout step by step. You decided to add a new device (suppose "Default New") and set updated layout for it and then, using some mechanism like rules, redirect users to this device. But you can't found a solution how to do that.
I also didn't find any rules which match your requirements. I suggest you add your custom condition. Add code below to solution:
using System.Web;
using Sitecore.Data;
using Sitecore.Diagnostics;
using Sitecore.Rules.Conditions;
using Sitecore.Rules.Devices;
namespace Your.Namespase
{
public class ContextLanguageCondition<T> : StringOperatorCondition<T> where T : DeviceRuleContext
{
private ID languageId;
public ID LanguageId
{
get
{
return this.languageId;
}
set
{
Assert.ArgumentNotNull((object)value, "value");
this.languageId = value;
}
}
public ContextLanguageCondition()
{
this.LanguageId = ID.Null;
}
public ContextLanguageCondition(ID languageId)
{
Assert.ArgumentNotNull((object)languageId, "languageId");
this.languageId = languageId;
}
protected override bool Execute(T ruleContext)
{
HttpContextBase httpContext = ruleContext.HttpContext;
if (httpContext == null)
return false;
var lang = Sitecore.Context.Language;
if (LanguageId == ID.Null || lang == null)
return false;
var langItemID = Sitecore.Data.Managers.LanguageManager.GetLanguageItemId(lang, Sitecore.Context.Database);
if (langItemID == ID.Null)
return false;
return LanguageId == langItemID;
}
}
}
Secondary, you need create a condition item in Sitecore. For example under "Context" Element Folder:

Data for creating rule:
Path: /sitecore/system/Settings/Rules/Definitions/Elements/Context
Text: where the language is [languageId,Tree,root=/sitecore/system/Languages,specific language]
Type: Your.Namespase.ContextLanguageCondition,Your.Namespase
Make sure you update the type with your library name.
After that, you can set the rule for a device:

If condition returns "true", the device will be switched
site/en-us
site/en-ca