From the left: Dr. Fern Desjardins, Cathie Pelletier, Richard L’Heureux, Cecile Thornton, Denis Ledoux, and Doris Bonneau attend a Francophonie Day event at the Maine State House in Augusta, Maine on March 12.Juliana L’Heureux/The Canadian Press
For decades, Cecile Thornton had little motivation to speak French. Born into the minority francophone community in Lewiston, Maine, she says she and her family were often the target of ridicule.
“I was ashamed of my francophone roots,” she recalled in a recent phone interview in French. “There were a lot of people who laughed at and mocked us.” Thornton, whose maiden name is Desjardins, married an anglophone and didn’t teach her children French. It eventually disappeared from her daily life, and she says she lost her ability to converse in the language as a result.
That changed in 2016, when she began attending French-language meet-ups led by local immigrants from West Africa. Thornton says those conversations inspired her to reconnect with her mother tongue. “The African community helped me feel proud to be Franco,” she said.
Advertisement
Now 68 years old, Thornton has become an advocate for French speakers in Maine, one of several members of the state’s francophone community striving to preserve their language and heritage. They hope a wave of recent African immigration and a growing recognition of the state’s Franco-American population will spark renewed interest in their cause. But the number of French speakers in Maine is dwindling, leading some to fear for their future.
Like Thornton, many francophone Mainers decided not to pass down their language in the 20th century. Children who did speak French faced further repression. A 1919 state law that banned education in French “had a long-term impact on how people perceived the value of their language,” said Patrick Lacroix, director of the Acadian Archives, housed in the University of Maine at Fort Kent. Maine only repealed the rule in 1969.
U.S. Census Bureau data underline the francophone community’s growing vulnerability. The agency estimated that about 30,000 of the more than 1.3 million people in the state spoke French at home in 2022, down from 33,000 in 2018 and from more than 40,000 four years before that.
Don Lévesque, a 76-year-old member of the centuries-old Acadian population in northern Maine, says his outlook on local efforts to promote French changes daily. “Sometimes I’m optimistic, sometimes I’m not,” he confessed in an interview.
Lévesque is the president of Le Club Français in the town of Madawaska on the border with New Brunswick, where he now lives. Founded in the 1990s by a group of residents concerned about the survival of their language, Le Club Français now offers French pre-kindergarten and elementary after-school programs, as well as conversational French courses for adults, he said.
Advertisement
Next, the organization wants to create more opportunity for Maine Acadians to develop social lives in French, through such things as community suppers or movie nights. Le Club Français is also planning cultural excursions into New Brunswick, Lévesque said.
But engaging younger residents is a challenge, he admitted. “Sometimes I feel like a dinosaur,” he said. “The French speaking dinosaur in an English world.”
A second French-speaking population, in Southern Maine, descends from Canadian immigrants who worked in the area’s many mills in the 19th and 20th centuries. Jan Sullivan, a native francophone who leads a French conversation group at the Franco Center of performing arts in Lewiston, says African newcomers have “reawakened” the language in the community.
Though immigration has fuelled a welcome boost to French, it might not be enough to save the language, Sullivan warned. “I think it’ll survive for a few more years, several more years,” she lamented. “But eventually, I’m afraid it’s dying.”
Others are resisting the narrative of a culture in inevitable decline. Among them is Susan Pinette, a University of Maine professor and director of its Franco-American Center in the town of Orono, one of several institutions in the state working to publicize the community’s history. In an interview, she said the centre aims to counter portrayals of language and cultural loss by highlighting ongoing Franco-American activism.
Advertisement
“The community is changing and that’s a good thing,” she said. “We don’t want (to be) a museum piece of something that’s stuck in the past.”
Lacroix agreed that what he called the “doom and gloom” narrative often ignores the grassroots efforts that have helped enhance the visibility of Maine’s Acadian community and organizations like his that foreground Franco-American heritage. “I think increasingly we are getting the attention of people in the state, which is really the first step even before we can start asking for greater support,” he said.
On Tuesday, the Maine legislature hosted a small ceremony to celebrate the state’s Francophonie Day. In its resolution proclaiming the holiday, the body cited a “resurgence in the use of the French language and a heightened appreciation of Franco-American heritage throughout the state.”
Despite the challenges facing French in Maine, Thornton said she remains hopeful for its future. She also encouraged Quebecers to cherish their connection to the language.
“If people in Quebec, they hold on to their French, they teach their children French, it’s going to be a very good thing for the language,” she said.
Access to affordable child care plays a direct role in whether Maine families can work, pursue education, and maintain stability. The Child Care Affordability Program helps keep child care costs within reach for working families.
To the Editor;
Access to affordable child care plays a direct role in whether Maine families can work, pursue education, and maintain stability. The Child Care Affordability Program helps keep child care costs within reach for working families.
Advertisement
At Penquis, we serve 270 children from 266 families across dozens of communities through our child development programs, including Head Start, Early Head Start, and child care. We see firsthand how access to child care determines whether parents can work, pursue education and build long-term stability for their families, particularly in communities facing workforce shortages and rising cost of living.
Child care availability alone is not enough. We can have programs and facilities in place, but if care is not affordable, it remains out of reach for families who are already struggling.
Without it, the cost of child care places an unsustainable burden on Maine families, consuming as much as 29% to 39% of income for single-parent households and 10% to 13% for two-parent families. CCAP is one of the few tools that effectively addresses this challenge by ensuring child care costs are affordable, capping costs at 7% of income for those with the lowest incomes, and expanding access for many more families.
Investing in CCAP supports children’s healthy development, enables parents to participate in the workforce, and strengthens Maine’s economy. We urge state leaders to prioritize this $15 million investment in the supplemental budget and ensure that affordable child care is accessible to the families who need it most.
Kara Hay president and chief executive officer
Advertisement
Penquis
Bangor
Thank you for reading your4 free articles this month. To continue
reading, and support local, rural journalism, please subscribe.
A woman is dead, and her husband is in serious condition after a fire broke out at their home in Readfield, Maine, Friday night.
The Maine State Fire Marshal’s Office tells NBC10 Boston affiliate News Center Maine that the Readfield Fire Department responded to the house on Plains Road around 9:51 p.m. and found a large fire.
Jerrold Wentworth, 74, had escaped from a second-floor window and told crews that his wife was still on the second floor of the home, officials said, but firefighters were unable to go inside to rescue 75-year-old Carolyn Wentworth due to the fiery conditions.
A photo shared by the fire marshal’s office shows the fire destroyed the home.
Advertisement
Carolyn Wentworth’s body was found in the debris around 1:45 a.m. Saturday, near where she had been sleeping, fire officials tell News Center Maine. An autopsy will be conducted to determine her cause of death.
Jerrold Wentworth was taken to Maine General Medical Center where he’s in serious condition, officials added.
Investigators from the state fire marshal’s office responded to the scene and are working to determine the cause of the deadly fire.
Firefighters were unable to enter due to heavy fire conditions
Advertisement
Maine Department of Public Safety
woman presumed dead in readfield house fire; husband hospitalized
SOURCE: Maine Department of Public Safety
Advertisement
Woman presumed dead in Readfield house fire; husband hospitalized
Advertisement
Firefighters were unable to enter due to heavy fire conditions
Updated: 8:48 PM EDT Apr 4, 2026
Editorial Standards ⓘ
Advertisement
A woman is believed to have died in a house fire Friday night in Readfield, officials said.Firefighters responded to a home on Plains Road at about 9:51 p.m. and found the structure heavily involved in fire. Neighbors helped 74-year-old Jerrold Wentworth escape from a second-floor window. He told crews his wife, 75-year-old Carolyn Wentworth, remained inside.Firefighters were unable to enter due to heavy fire conditions.Investigators with the state Fire Marshal’s Office later located a deceased person in the debris early Saturday in the area where Carolyn Wentworth had been sleeping. The body was taken to the state medical examiner’s office for identification and cause of death.Jerrold Wentworth was hospitalized in serious condition. The cause of the fire remains under investigation.
READFIELD, Maine —
A woman is believed to have died in a house fire Friday night in Readfield, officials said.
Firefighters responded to a home on Plains Road at about 9:51 p.m. and found the structure heavily involved in fire. Neighbors helped 74-year-old Jerrold Wentworth escape from a second-floor window. He told crews his wife, 75-year-old Carolyn Wentworth, remained inside.
Advertisement
Firefighters were unable to enter due to heavy fire conditions.
Investigators with the state Fire Marshal’s Office later located a deceased person in the debris early Saturday in the area where Carolyn Wentworth had been sleeping. The body was taken to the state medical examiner’s office for identification and cause of death.
Jerrold Wentworth was hospitalized in serious condition. The cause of the fire remains under investigation.
Advertisement
Advertisement
`;
}
function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}
function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;
function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});
var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}
function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}
var location = { zip: window.DEFAULT_ZIPCODE };
try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}
Advertisement
var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;
if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}
function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;
var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);
if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.wmtw.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.wmtw.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}
Advertisement
function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;
var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}
var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}
var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}
var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}
Advertisement
var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}
function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;
if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);
Advertisement
for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex
`;
}
function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}
function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;
function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});
var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}
function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}
var location = { zip: window.DEFAULT_ZIPCODE };
Advertisement
try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}
var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;
if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}
function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;
var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);
Advertisement
if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.wmtw.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.wmtw.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}
function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;
var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}
var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}
var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}
Advertisement
var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}
var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}
function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;
Advertisement
if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);
for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex